Você estava muito perto:
tr "o" "a" < <(echo "Foo")
A substituição <() faz um descritor de arquivo e apenas cola o caminho para o shell. Para compreensão basta executar:
<(echo blubb)
Você verá o erro:
-bash: /dev/fd/63: Permission denied
É por isso que apenas cola /dev/fd/63 no shell e /dev/fd/63 não é exequível, porque é um simples pipe. No tr -exemplo acima, é echo "Foo" que grava no pipe e através do redirecionamento de entrada < é o comando tr que lê o descritor de arquivo.