Стало работать как только добавил в конец > /dev/null 2>&1. То есть входной и выходной потоки в null. Как это влияет на выполнение скрипта? Это странно.
STDOUT и STDERR крона по умолчанию уходят на почту. Возможно, из-за неправильной настройки или отсутствия MTA крон не может запустить команду целиком. Хотя для меня это немного странно.