Просто используйте
$ rename 's/^#//' *
используйте -n только для проверки того, что, по вашему мнению, это произойдет, действительно происходит.
В вашем примере у вас есть подсказка о неправильных кавычках (обратных галочках) в сообщении об ошибке
-bash: s/#//g: No such file or directory
bash пытается выполнить команду с именем s/#//g
.
Нет, что используя g
(global) и не привязывая регулярное выражение, вы замените любое #
, а не только то, которое находится в первой позиции.