You don’t need to activate to use virtualenv it is a convenience. You can just use the virtualenv directly:
virtualenv venv
./venv/bin/pip install foo
Have you tried from fish using:
. venv/bin/activate.fish
It probably isn’t as widely used as bash so may have issues – looking at the commit history shows a recent fix:
https://github.com/pypa/virtualenv/blob/master/virtualenv_embedded/activate.fish