Multi-insert batch executed remotely 5x slower than locally
So there's only one batch (SqlBatchCompleted) involved here, as I understand. Assuming that:
My guess is that the difference is because of (the lack of) the network stack.
The client network library default to try Shared Memory first. This doesn't &quot;dip down&quot; in the network stack. This is likely the one you end up with from the local SSMS.
But Shared Memory will of course not work from the remote machine. The next tried is TCP, which is likely the one you end up with from the remote SSMS (unless you either re-configured that client or re-configured SQL server - both pretty unlikely).
So you compare using a netlib which uses a shared memory area to one that travels the code path of the network stack in both directions and also has bandwidth and latency because of the network in between.
Things you can play with includes:

Force the TCP netlib when running locally (option in SSMS client connect dialog).
Play with various network packet sizes (also available in SSMS connection dialog).
Talk to your network people and try with jumbo frames and such things.