Verifique se a opção prompt_subst está ativada. Se necessário, adicione a seguinte linha ao seu ~/.zshrc :
setopt prompt_subst
Isso diz ao zsh para reavaliar a string de prompt sempre que estiver exibindo um prompt. Em seguida, verifique se você está atribuindo PS1 (ou alguma outra variável usada pelo tema de prompts) conforme desejado:
PS1='${PWD/#$HOME/~}'
As aspas simples protegem os caracteres especiais, como $ , de serem avaliados quando você define a variável.