Experimente prename
$ ls
P [001] P [002] P [003]
$ prename 's/[ \[\]]//g' P\ *
$ ls
P001 P002 P003
$
Como alternativa, continue com sua abordagem de script original (com um pequeno ajuste de '
to "
e uma pequena alteração no regexp)
$ ls
P [001] P [002] P [003]
$ for P in *\ *; do mv "$P" "${P//[\[\] ]/}" ; done
$ ls
P001 P002 P003
$