So. You’ve got a vertex in Vertex Group with a weight value of 1. And the neighboring vertex outside said group has weight = 0.
And in-between there’s a linear (i think) gradient of values from 0 to 1. When Subdiv Mod generates new vertices it assigns them appropriate weights from that gradient: with one subdivision level there’s a new vertex in the middle with weight = 0.5, with two subdivisions there’s 3 new vertices with weights 0.25, 0.5 and 0.75, etc…
When you use a Vertex Group in a modifier it will have all these values for new vertices. So in this case Shrinkwrap affects not only border vertices that you assigned but all the new ones nearby as well.
(Here’s what it looks like in Edit Mode with Viewport Overlays > Vertex Group Weights checked)
And this particular shrinkwrap with X-axis Project reacts weirdly (vertices get offset to X+ side). Why? No idea. Someone smarter than me should explain these things…
Luckily, there’s a modifier to edit weights.
We can remove vertices from a certain group if they have value below given threshold (less than 1, in our case). Yay!
Now you should have a Vertex Group with only border vertices in it.
Place that Mod above shrinkwrap and that should solve the issue.
PS. I apologize if this reply got too… convoluted.