Como John mencionou, é uma questão de seu script ser interpretado de forma diferente nos dois ambientes (usando /bin/sh under cron e usando o shell existente, que provavelmente é /bin/bash quando você o origina diretamente) . Na verdade, /bin/sh geralmente é apenas um link simbólico para /bin/bash , e o executável bash se comporta de maneira diferente dependendo do nome sob o qual foi invocado, mas isso é apenas um aparte.
Aqui, a maneira mais fácil de corrigir seu problema provavelmente é apenas especificar
/bin/bash /home/hookedonwinter/bin/auto_git_push.sh
como o comando a ser executado no cron.