Quando você simplesmente executa grep --color , isso indica grep --color=auto , que detecta se a saída é um terminal e, se sim, ativa as cores. No entanto, quando detecta um cano, ele desabilita a coloração. O seguinte comando:
grep --color=always -R "search string" * | less
Sempre ativará a coloração e sobrepõe a detecção automática, e você obterá o realce de cor em less .
EDITAR: Embora o uso de apenas less funcione para mim, talvez a versão mais antiga exija que o -R flag manipule as cores, conforme sugerido aqui.