He comparado las páginas del manual de diry lsy que parecen ser exactamente la misma. Ambos son parte de GNU coreutils y "listar el contenido del directorio".
La única diferencia que he visto hasta ahora es que dirno colorea la salida.
Entonces, ¿por qué existen dos comandos? ¿Hay alguna diferencia que me perdí? ¿Por qué preferiría uno dirmás ls?