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:
Another random tip: python virtualenv generates a activate.fish script that you should use instead of the plain activate script.