Oracle RMAN substituting variables
The Linux shell must be interpreting the double quotes before the command gets to rman. Either escape the double quotes:

rman target username/password @${RMAN_DIR}/backup.rman using \"db1\"


or enclose the command in single quotes to prevent the shell from messing with it:

rman target username/password @${RMAN_DIR}'/backup.rman using "db1"'


In the latter case you will have to leave the environment variable outside the quoted command as you do want the shell to expand it.