Você esqueceu o %s
, sem o qual cat
não obteve um nome de arquivo e está simplesmente aguardando a entrada de stdin:
LESSOPEN='||cat %s' less foo bar # works
LESSOPEN='||cat' less foo bar # hangs
A página de manual diz:
To set up an input preprocessor, set the LESSOPEN environment variable to a command line which will invoke your input preprocessor. This command line should include one occurrence of the string "%s", which will be replaced by the filename when the input preprocessor command is invoked.