Recommended Method for Changing the Shell Used in Qubes

You can change the shell of user user in a template to /usr/bin/fish, it will automatically propagate to all AppVMs using that template.

This should look like this, after you installed fish in the template:

sudo usermod -s /usr/bin/fish user

I have this salt snippet for that

user:
  user.present:
    - shell: /usr/bin/fish
    - groups:
      - user
      - qubes

With salt, you have to list the groups otherwise they are removed, see Changing user's shell with salt - #11 by unman