Perl usually gets extra module paths from the PERL5LIB environment variable rather than PATH. So that would be the first thing to look at.
Also, its possible that cron and the terminal are running as different users (and so with different file/directory permissions), or are using different versions of the perl executable. You can see where the module is being loaded from the terminal by using:
$ perl -le 'require Image::Grab; print $INC{"Image/Grab.pm"}'
/some/path/lib/Image/Grab.pm
If that path isn't in the list of paths in the cron error message, that's another place to investigate.
Dave.