Porque é assim que os desenvolvedores queriam.
- e - são convenções para argumentos opcionais.
nenhum traço é normalmente destinado a operações.
Neste caso --list é uma operação (comando think sub) e um argumento opcional.
Veja Estes documentos , mas perceba que os criadores de código podem implementar o que desejam. A verdade é que, embora seja tecnicamente correto, a lista e a lista provavelmente foram implementadas dessa forma, para que fosse mais fácil de usar.