Não é o problema de ls . É como os links simbólicos funcionam. O .. coloca você no pai do diretório atual, o diretório não sabe que você chegou a ele através de um symlink. O shell tem que intervir para evitar esse comportamento. Para o shell embutido cd , existe um tratamento especial que não chama apenas chdir , mas memoriza o caminho completo do diretório e tenta descobrir o que você deseja. ls , no entanto, não é interno. O shell tem que alterar .. para um caminho diferente antes de passá-lo para ls se você deseja obter o que espera. zsh option CHASE_DOTS ajuda você com isso.
De um modo geral, links simbólicos para diretórios são um negócio sujo. Para aplicações críticas e semi-permanentes, use mount --bind .