msgattrib exibe cores somente se executadas a partir do terminal real. Você pode usar o comando unbuffer que faz parte de expect para fazer msgattrib pensar que ele é executado a partir do terminal real e usar a opção -r para manipular os escapes ANSI em less :
unbuffer msgattrib --untranslated pl.po | less -r
Você pode fazer isso em qualquer comando que produz cores (códigos de escape ANSI) com base na existência de tty.