I would say because there is more going on since objects are re-used in different positions, the movement of the terrain and the obects are part of an SPS mesh rather than a mesh in their own right. Also it is better for users that they just supply the basic data and Babylon.js does the hard work.
If you want a closer look at how it is achieved https://github.com/BabylonJS/Extensions/blob/master/DynamicTerrain/src/babylon.dynamicTerrain.ts from line 309
See also Dynamic Terrain Instance Support