Is it possible to change the user's shell system-wide without using chsh?
You should be able to use
sudo chsh -s /usr/local/bin/fish USERNAME
to change user USERNAME
to a shell which isn't listed in /etc/shells
.
PS: Might be worthwhile to create a second admin account first so you won't get locked out if the behaviour changes with future releases.