Eu votei o comentário por @rozcietrewiacz, mas quero chamá-lo como uma resposta completa. (Isso não ajudaria o pôster que já definiu os dotfiles, mas acho que ajudará pessoas como eu que encontrarem essa pergunta com base no erro.)
zsh lê .zshenv e .zshrc para logins interativos, mas apenas .zshenv para logins não interativos. Para corrigir esse problema, eu precisava dividir as configurações de PATH do meu .zshrc e movê-las para .zshenv .
No meu caso, não consegui executar comandos mercurial que eram comunicados por ssh com outro servidor, porque meu caminho (com hg em si) foi definido em .zshrc no servidor.
Mais detalhes podem ser encontrados aqui e aqui .