Frank, this may be a really dumb question, but I'm not afraid of looking dumb so here goes...
Is your Linux distro fully updated/patched? Is there any chance you're looking at a bug in either crontab or sudo which could be causing this failure?
I wrote and tested the script on Ubuntu 6.06 LTS (the server release) and I have no idea how it differs from other distros, other than that it is supposed to be pretty close to Debian.
I'm grasping at straws here, but if I had to guess I would wonder if there is something wrong permissions-wise -- that is, if the sudo command is somehow not properly emulating the Zimbra user for starting and stopping of the services. I know there are some funky differences between things working at the command line and running from crontab, and I am the wrong person to debug them because it's really over my head, but perhaps this'll give you some thoughts on how to proceed.
You might check out
this link for more information about things working in bash but not in crontab and see if it gives you any help.
Dan