Mostly path and rights issues since through crontab, which is executed as a super user may not have rights to oracle paths and directories.
This can be verified by redirecting the error messages (2&) of the shell script to a file and viewing the output.
Things to try.
(1) Change the path statement in the beginning of your script to include oracle paths for the executables like splplus
(2) Ensure that all the directories requiring access by oracle permit access by users outside of the oracle group.
If it still doesn't work, use an oracle feature.
I just got this by ggogling.