Em teoria, deveria funcionar. Eu acho que você vai achar a diferença no PATH. Sua versão pode ser diferente, mas no meu / etc / crontab há uma linha PATH no topo que inclui o / sbin (e o meu desligamento está em / sbin).
Eu acho que você vai descobrir que quando o CRON é executado para o usuário root, ele não tem um caminho associado a ele, então ele não está funcionando. Altere o comando para
30 2 * * 3 root /sbin/shutdown -h now
E eu suspeito que isso resolverá seu problema.