O sudoers entry dave ALL=NOPASSWD: /home/dave/thescript.sh permite que o dave execute sudo /home/dave/thescript.sh sem digitar uma senha. Não diz nada sobre o uso de sudo desse script; sudo não se importa com qual script, se houver, o invocou.
Se todo o script for executado como root, chame-o com sudo /home/dave/thescript.sh no crontab. Mas então, por que não simplesmente colocar o script no crontab root ?
Caso contrário, se o script contiver uma linha sudo /path/to/mycommand arguments , coloque dave ALL=NOPASSWD: /path/to/mycommand arguments no arquivo sudoers. Isso será aplicado, não importa onde dave execute mycommand .