Very common cause here is inadequate PATH variable in the cron environment. You could spend a while figuring out exactly what path elements are important, but a shortcut is to type
printenv PATH
in the environment where it works, and copy that value into a new PATH variable (or replacing an old one) at the top of the cron file
PATH=/blah/blah:/more/things/that/you/got/from/printenv
NB Don’t just copy what I wrote - it’s nonsense, you need to copy from a working value of PATH
I can’t guarantee that’s the problem, but there’s a good chance.