Deixar uma senha de texto simples em qualquer arquivo é sempre uma má idéia, caso seu sistema esteja comprometido. Às vezes é inevitável. Para tornar isso "seguro", você deve limitar essa atividade a um usuário muito limitado e também deixar essas opções confidenciais em um arquivo padrão.
Para resolver seu problema especificamente, na página mysql
man:
If you use the short option form (-p), you cannot have a space
between the option and the password. If you omit the password
value following the --password or -p option on the command line,
mysql prompts for one.
para corrigir isso, você precisa executar:
mysqldump -u [username] -p[password] [db_name] > [path to backup file]
ou
mysqldump -u [username] -password=[password] [db_name] > [path to backup file]