This is my problem as well. I’ve been using fish for quite a long time, and I’m still frustrated by weird posix incompatibility.

bass can be helpful for some of those posix issues:

https://github.com/edc/bass

Another random tip: python virtualenv generates a activate.fish script that you should use instead of the plain activate script.