Eshell because it is consistent cross platform and I switch often for work/etc. Sometimes I’ll use bash when I really want a native shell.
I used fish before eshell and I really like it, the auto complete is nice, but eshell has autocomplete and since aliases and other configurations are in my emacs config, they sync cross platform too.