mysql_db_name=$(printf %s\n "$site" | perl -lpe 'y/0-9a-zA-Z$_/_/c')
Agora, como você conhece Perl bem, não há necessidade de explicações.
mysql_db_name=${site//[!a-zA-Z_$0-9]/_}
mysql_db_name=$(perl -se 'print y/0-9a-zA-Z$/_/cr' -- -_="$site")