There is a considerable risk that the optimizer decides to drag the remote table in full into the local server to perform the join. You don't want that to happen.
What I usually do is to package the local table into an XML data, and then pass that as a parameter to sp_executesql on the remote server. Iin the remote batch, I unpack the XML into a temp table to perform the operation.
You have my full understanding if you did not grasp that paragraph on first read - it's certainly not a completely trivial exercise. But I have a longer discussion about the approach here: https://www.sommarskog.se/dynamic_sql.html#remotedata.