Возможно, файл юнита слишком куцый, и с правами на файлы что-то не то?
Вот такой вариант у меня сработал:
test.sh:
#!/bin/bash
while true; do
date +%Y-%m-%d_%H:%M:%S >> /home/myuser/test.log
sleep 20
done
Юнит:
[Unit]
Description=kaBOOM
After=network.target
StartLimitIntervalSec=1
[Service]
Type=simple
Restart=always
RestartSec=5
User=myuser
ExecStart=/home/myuser/test.sh
[Install]
WantedBy=multi-user.target
Обратите внимание, что пишу я в файл в своём домашнем каталоге и запускаю от своего пользователя.
И никаких проблем с тем, что это баш скрипт, не было.