Use aspas:
mv -- "$file" "$(echo "$file" | sed ...)"
Else mv vê vários argumentos. Um nome de arquivo chamado file name with spaces seria 4 argumentos para mv . Portanto, o erro: when moving multiple files, last argument must be a directory . Quando mv tem mais de 2 argumentos, está assumindo que você deseja mover vários arquivos para um diretório (que seria o último argumento).
Mas, no entanto, parece que você deseja remover os 5 primeiros caracteres do nome do arquivo. Isso pode ser feito mais simples com bash :
mv -- "$file" "${file:5}"
Editar : adicionei o sinal -- , graças ao comentário de @ pabouk . Agora os arquivos que começam com traço - também são processados corretamente.