This is because virtual Shadow Maps are cached, and when geometry is updated, they need to be invalidated and recalculated. Changes to nanite displacement are not factored into cache invalidation. You would need to force the cache to invalidate. Unfortunately, this is usually done on a per shadow casting mesh basis, meaning you would be invalidated shadows for the entire landscape if you were to alter this setting - very expensive.
Instead, you would need to find a way to locally invalidate the cache around the places that the mesh is being updated.
One way to do this could be to increase the bounds of the skeletal mesh that is causing the displacement. The larger its bounds are, the larger an area around it will be invalidated each frame, but there is a performance cost for invalidating more of the cache each frame, so you should find the smallest bounds that doesn’t cause issues.
Edit: If the cache is reverting back after the dynamic object moves away, do you have separate static pages enabled? If so, it could be that the dynamic page is redrawing as expected, but the landscape is drawing into the static page and once the dynamic object moves away it reverts back to the old static cache. The following command controls this:
r.Shadow.Virtual.Cache.StaticSeparate