Eu acho que você executa o cron job usando uma conta diferente, do que você está usando em um shell.
Isso pode fazer com que sftp
falhe por diversos motivos. Uma delas é que a conta, que executa a tarefa cron, não possui a chave do host no known_hosts
.