O problema é que o systemd é executado com um ambiente mínimo e nem todos os envvar são conhecidos durante a execução do script. Para fazer isso funcionar, eu mudei bash
por /bin/bash
.
Descobri o que estava errado executando o script sem o ambiente:
env -i /path/to/script
Ele retornou o seguinte erro:
sudo: bash: command not found
Esse erro é auto-explicativo e me ajudou a encontrar o problema.