Isso não está realmente fazendo um ls -al e passando isso para cat , ele está fazendo uma substituição de processo em cat e apresentando isso como um arquivo para ls -al , que então fará uma listagem no arquivo.
Assim, a substituição do processo cria um canal conectando um objeto de arquivo e stdin do programa "interno", cat aqui e apresenta um arquivo para o programa "externo". Então você faz um ls , e vê que ele ofereceu o "arquivo" /dev/fd/63 .