`ln` without options creates a hard link as documented in the manual page for `link`, especially the section explaining error EXDEV, which contains the remark
> link() does not work across different mount points, even if the same filesystem is mounted on both
Although I realize that the paragraph below does not address the problem, I won't remove it from my answer. It might still be useful for some readers.
A hard link points to an inode number in the same filesystem and can therefore not be created across filesystems. You can use a symbolic link instead (-s option).