Como mostrado no seu:
$ trap -p DEBUG
trap -- 'preexec_invoke_exec' DEBUG
Você tem um trap DEBUG que executa comandos antes de cada comando. Pelo jeito, parece que o comando preexec_invoke_exec (eventualmente) tenta atualizar o título do seu emulador de terminal com o comando sendo executado.
No entanto, para fazer isso, ele grava a seqüência de escape para stdout em vez de para o terminal.
Você deve identificar onde isso é feito e adicionar um redirecionamento > /dev/tty para garantir que seja sempre enviado ao dispositivo tty mesmo quando o stdout for redirecionado como dentro dessa substituição do comando $(...) .
Observe também que se preexec_invoke_exec for emular zsh preexec , estará fazendo algo errado, pois o preexec hook em zsh é destinado apenas a ser executado uma vez após uma linha de comando foi aceito e antes de ser executado, não para cada comando nessa linha de comando.