/notice $nick $hget(moviedatabase,$hfind(moviedatabase,5,$2 -, #, w).data)

missed bits : $hfind gets you the item name not the contents, this may have been what you wanted tho, im not sure
not needed : 5, is not needed and isnt part of the $hfind construct

Try this below.
usage !movie<match text>
<match text> well be matched as any part of an hashtable items data, wild cards pased well be used, ie: *&?
If no matches then its reported
Up to 4 matches well be reported
5+ matches produces a refine your search request.

Code:
on *:text:!movie*:*:{
  tokenize 32 $+(*,$mid($1-,7),*)
  if (!$hfind(moviedatabase,$1-,0,w).data) { .notice $nick No Matches Found. }
  else {
    .notice $nick $hget(moviedatabase,$hfind(moviedatabase,$1-,1,w).data)
    .notice $nick also $hget(moviedatabase,$$hfind(moviedatabase,$1-,2,w).data)
    .notice $nick also $hget(moviedatabase,$$hfind(moviedatabase,$1-,3,w).data)
    .notice $nick also $hget(moviedatabase,$$hfind(moviedatabase,$1-,4,w).data)
    if ($$hfind(moviedatabase,$1-,5,w).data)) { .notice $nick Others also please refine your search }
  }
}