Creating a dynamic menu
You can't really have dynamic menus that point to different things. You can write a deriver and so on, but that will be persisted and not updated until you tell it to. You can trigger the necessary updates also without a full cache clear, see how MenuLinkContent does it, but it's still persisted.

Another approach would be to not make the route/output dynamic and not the menu. Point to a custom controller, and there you either dynamically display the latest node (can easily be done with a view, for example) or you redirect to the latest content, to avoid duplicate content.