Você está perdendo algumas variáveis de ambiente, provavelmente o DISPLAY
one. Você poderia tentar o seguinte:
echo "foo"
DISPLAY=:0.0 notify-send "Battery-Low"
echo "bar"
Se isso não ajudar, você poderá comparar o ambiente dentro do script e em um terminal executando o comando env
em ambos.
Observe também que, se o script estiver sendo executado como root, talvez seja necessário fazer algo assim:
sudo -u yourUsername DISPLAY=:0.0 notify-send 'Battery low'