Então a causa foi puramente em mim. Eu tinha esse alias em meus dotfiles, o que causou esse comportamento estranho: alias mv='ln -i' .
O motivo era simples: quando eu criava aliases "protegidos" de cp , mv e ln usando o argumento interactive , copiava apenas os aliases anteriores e colados. E no caso de um apelido ln , alterei o conteúdo do alias, mas não o nome dele. Deve ser ln='ln -i' , mas acabou em mv='ln -i' .
Eu sinto vergonha. Desculpem a pergunta estúpida, duvido que alguém venha a experimentar o mesmo problema.