El problema no es que more y less no están coloreando su salida, es que ls no genera el color porque está conectado a otro proceso en lugar del terminal.
No puedes obtener fácilmente ls para ser más inteligente sobre cuándo genera color, pero puede agregar --color para forzarlo a que emita color cuando lo estás canalizando a more
Cuando tenga una salida en color, use ... |less -R para hacer less pasar los colores al terminal en lugar de mostrar los códigos de escape como texto
ls --color | less -r
Probado en Linux, GNU userland.