Bash's list of behaviours that aren't POSIX-compliant is longer than I expected: https://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html
I used fish for a while and liked it, but POSIX-ish shells work with everything. These days I use a heavily customised zsh.