e ci credo.. bash utilizza il contrassegno ${VAR} per ESPANDERE la variabile VAR... ma quello che tu chiami ad espandere non è una variabile bensì una espressione..

queste sono le basi dello scripting bash..........

prova ad usare l'apice inverso per isolare l'espressione

codice:
backup_file=/data/backup/`exec date +%Y%m%d`backup.sql 

oppure

data_formattata=`exec date +%Y%m%d`
backup_file=/data/backup/$data_formattatabackup.sql
il secondo esempio è comodo se devi riutilizzare la data.

leggere una buona guida su bash no eh?