Este é um problema padrão com nomes de arquivos / diretórios que começam com símbolos menos convencionais. Seu problema é que mv está tratando --pycache-- como nome de longa opção (desde que comece com -, há também opções curtas, elas começam com -). Consulte a página de manual do getopt para obter detalhes sobre opções longas e curtas.
A solução padrão nessa situação é usar um traço duplo vazio - antes de todo argumento, que informa ao comando (mv no seu caso, mas funcionará com outros, cp por exemplo) para Pare de tratar o que segue como opções e trate-as como argumentos.
Assim, seu comando se tornará:
$ mv -- --pycache--/ __pycache__
e não falhará.