Passwordless mysqldump via shell script in /etc/cron.daily
Solved with the help of this answer.
cron doesn't know the path to ~/.my.cnf, so as per the MYSQL documentation you need to specify the path to the .my.cnf file.
The proper passwordless mysqldump command in the shell script triggered via cron should be:
mysqldump --defaults-extra-file=/path/to/.my.cnf -u [uname] db_name &gt; db_backup.sql

Works like a charm.