macOS Cannot Create Valid Symlink From Terminal Using Relative Paths
This is not related to fish nor macOS in general, the resulting symlink is just broken
$ mkdir a b
$ touch a/foo.txt
$ ln -s a/foo.txt b/
$ cd b
$ cat foo.txt 
cat: foo.txt: No such file or directory
$ ll foo.txt 
lrwxr-xr-x  1 pse  staff  9 Feb  1 13:14 foo.txt@ -&gt; a/foo.txt

Basically you need to think ahead when creating symlinks in a directory which is different from the current one. I find it easier to run
$ cd b
$ ln -s ../a/foo.txt .

or just avoid relative symlinks in general.