No bash.
O primeiro exemplo lst=( ls $ 1 ) cria uma matriz de valores no var lst.
Como esse código mostrará:
lst=('ls .'); printf '%s\n' "${lst[@]}"
O segundo exemplo lst=$(ls $1) executa ls $1 , mas apenas a saída (concatenada como uma cadeia longa) é atribuída à var lst .
Talvez o que você quisesse comparar fosse:
lst=( 'ls $1')
lst=($(ls $1))
E, de fato, '...' é exatamente equivalente a $(...) .
E ambos os comandos criarão uma matriz de valores em lst