Find intersection of two arrays without duplicates
Your solution doesn't have explicit instructions to use the property that no duplicate elements in the array, but it naturally benefits from it.
The binary search is slightly faster because it doesn't need to visit duplicate elements unnecessarily.
The iteration is faster too for the same reason.
Actually if there were duplicates it would be a lot tougher problem to solve.

The only way I see to make it faster won't be possible in \$O(1)\$ space:
instead of sorting the first list, you could put it in a hash set.
That way the binary search becomes a hash lookup, which is much faster,
but at the expense of doubling the memory usage of one of the lists.

When you have two lists of very different sizes,
I'm wondering if it can be said that making the shortest to be the first or the second will yield better performance in general.