Provavelmente, porque o (s) ambiente (s) (tipo env
no prompt para vê-lo) é diferente.
Eu tive problema semelhante ao tentar executar uma consulta mysql no cron.daily, resolvi-o adicionando este sinalizador --defaults-file=/root/.my.cnf
Parece que o mysqldump tem um sinalizador similar --defaults-extra-file
(precisa ser o primeiro argumento), mas se isso não funcionar, tente descobrir qual é a diferença entre o seu ambiente de linha de comando e o ambiente do cron. Crie um cronjob que imprima a saída de env
em um arquivo e compare-o com o que você obtém ao executá-lo a partir do seu shell.