Este es un problema estándar con nombres de archivo / directorios que comienzan con símbolos menos convencionales. Su problema es que mv está tratando --pycache-- como nombre de opción largo (ya que comienza con -, también hay opciones cortas, comienzan con -). Consulte la página de manual de getopt para obtener detalles sobre las opciones largas y cortas.
La solución estándar en esta situación es usar un doble guión vacío , antes de todo argumento, que le dice al comando (mv en su caso, pero funcionará con otros, cp por ejemplo) que deje de tratar lo que sigue como opciones y lo trate como argumentos
Por lo tanto, su comando se convertirá en:
$ mv -- --pycache--/ __pycache__
y no fallará