É apenas uma convenção (uma regra que muitos adotaram e que acabou sendo disseminada). Não é obrigatório, mas se vc fizer diferente com certeza causará estranheza com quem está acostumado.
A convenção é que opções que são compostas por apenas um caractere são precedidas por um hífen (como ls -l, por exemplo). E existe a possibilidade de combinar mais de uma opção, ou seja, em vez de ls -a -l, posso fazer ls -al.
Já as opções longas (com mais de um caractere) foram criadas muitas vezes para dar mais clareza (já que correspondem a palavras completas), e convencionou-se usar dois hífens antes delas (como ls --help).
Alguns comandos possuem ambas as alternativas para muitas opções. Por exemplo, a saída de ls --help mostra algumas delas:
-a, --all do not ignore entries starting with .
-A, --almost-all do not list implied . and ..
--author with -l, print the author of each file
-b, --escape print C-style escapes for nongraphic characters
--block-size=SIZE with -l, scale sizes by SIZE when printing them;
-c with -lt: sort by, and show, ctime (time of last
modification of file status information);
with -l: show ctime and sort by name;
otherwise: sort by ctime, newest first
Ou seja, ls -a seria o mesmo que ls --all. Já a opção -c não possui um equivalente "longo".
Repare que também seria possível fazer ls -all, mas aí estamos passando a opção -a mais a opção -l duas vezes, que além de redundante, é diferente de usar --all (pois este é equivalente a passar apenas a opção -a). O uso dos dois hífens faz toda a diferença.