When issuing your command, if permissions are denied, the easiest way to fix that is to run the command with root privileges.
sudo nano /boot/config.txt
sudo basically let's the command after it do whatever it wants (like in your case, let nano write to /boot/config.txt), so be careful.
Thanks to @Jaromanda X.
Using user in fstab implies noexec, so add exec after user:
/dev/sda1 /mnt/hd auto defaults,user,exec 0 1
However if you do not want to mount with exec flag you can run:
$ sh start.sh
(or another script interpreter).
As the script is just a text file and the interpreter is on another partition (exec-able), it will run.
Raspbian comes with the systemd init system since version Jessie. I assume your system has this also running. systemd heavily uses dbus for interprocess communication and it seems that it is missing. Try to install it and reboot:
rpi ~$ sudo apt install dbus