I replaced your Mapping nodes with Vector Math > Add as it achieves the same thing. Now, let's look what happens when you offset the Y coordinate passed to the 2nd noise texture, with the first noise removed:
Not surprising at all...
But what if we base the scale on the Y coordinate (before offsetting it, simply the Y coordinate of the rendered pixel):
It no longer moves, it squeezes! Why? Because the noise texture isn't generated by first moving to a given location, and then generating some noise there, with the size of pockets of similar color based on Scale - no, instead it simply multiplies the given coordinate by the scale, and then generates noise for that coordinate:
This is why setting Scale to
0 will output a solid color everywhere, because each coordinate will be multiplied with 0, resulting with x:0, y:0, z:0, and so only a single noise coordinate will be sampled for all pixels/lightrays.
Going back to the example where the Scale depends on Y coordinate: at the bottom Y=0, and so bottom color doesn't change at all; at the top Y=1, and so the color changes as with Scale = 1. The lower on the plane, the smaller the scale and so the lower the multiplicand of the coordinate, and so the lower the offset, and so the lower of the moving texture speed... In simpler words (not sure if they're needed), if you have a traffic jam with 100 cars, and you magically make the cars move with speeds based on each car's bumper's distance to the front car's bumper, the front car won't move at all, the last car will move the fastest, and they will all squeeze tragically killing everyone inside (don't try to imagine the horror).
Now in your case something quite similar happens, the speed of change depends on the result of the first noise. You have points on the plane that have scale very close to 0, points that have scale very close to 1, and points in between. As you increase the offset, everything squeezes, therefore adding more and more detail:
But how do you fix that? Right, ummm... I know! Do that thing vklidu said.