As someone pointed out, there is likey an environment difference. To elaborate on that, cron clears out the entire environment, with the exception of: HOME, LOGNAME, TZ, PATH, SHELL. It should be executing the bourne shell (not bash), not matter what your login normally uses.