Isso ocorre porque qualquer função / comando que você chamar de dentro do seu prompt irá redefinir o valor. Para fazer isso funcionar, atribua o valor a outra variável como a primeira coisa que você faz na função fish_prompt ou fish_right_prompt.
function fish_prompt --description 'Write out the prompt'
set -l _display_status $status
...
printf '%s' $_display_status
end