Eu não chequei em detalhes, mas o bash manpage explica (search for INVOCATION) que o bash não lê o / etc / profile quando não é invocado como um login ou shell interativo.
O programa de login sempre inicia o shell como um shell de login, então eu acho que o cron não e o shell não lê nenhum arquivo de perfil (de acordo com a página man ele leria o arquivo dado na variável ENV quando o shell estava começou, mas o cron não parece ter uma opção para definir isso).
Descobri que geralmente é problemático confiar em quaisquer configurações globais (por exemplo, PATH) nos scripts de tarefas cron para definir minhas próprias configurações em cada script.