Declaring props makes it crystal clear what your Vue component requires. It's similar to declaring constructor params in a PHP class.
In addition to clarity, it provides free validation. "This Vue component may not be used unless the given prop data is provided."
If you reach for $page.props thoughtfully, I agree it can be very useful. But I wouldn't omit props in favor of using it exclusively. That'll pretty quickly create a big mess.
If you find yourself prop drilling down multiple levels, you could consider provide and inject, or something like a Pinia store.