Я сделал бы это
for f in dmp_{000..011}; do [ -f $f ] && cp "$f" "r$f"; done
Вы ошибка находитесь в своем сценарии. Ваш для цикла должен быть похожим на это вместо этого:
for mod in ${mods[@]}; do
{}
ссылается на переменную в то время как ()
для команд. Второй [@]
ссылается на целый массив.
Исполнительная команда заменяет текущую оболочку другой командой. Это, кажется, является ненужным в Вашем случае. Если Вам действительно нужен он, только используют его на последней команде.