Em zsh, as variáveis não nomeadas não são divididas e globadas , enquanto substituição de comando sem aspas será dividida em palavras usando valores em IFS
.
No seu caso, o primeiro comando salvou o conteúdo do arquivo /etc/hosts
na variável a
, echo $a
imprime o valor da variável a
sem dividir e glob, você obtém o conteúdo de /etc/hosts
( split e glob não são executados no RHS da atribuição de variável ).
echo $(</etc/hosts)
usou a substituição de comando sem aspas, o resultado será dividido em palavras, para que você obtenha o conteúdo de /etc/hosts
como todas as palavras delimitadas por espaço.