You're looking at one person. I'm thinking in terms of hundreds of thousands of transactions. Your idea sounds lovely when you think about it as an individual thing, all neat and shiny, but there's a lot of holes missing.
Start with the following :
* Where is arrival time stored, how does the server govern arrival time? Remember, the client cannot be trusted to hold the arrival time. As the server governs arrival time, it's going to need a queue for all these ships in transit otherwise there's going to be database blocking issues with all the ships being sent back and forth, that's going to need a scheduler. We're back to where we started.
* If you're going to query every ship that the player owns, then you're sending lots of queries where you should only be sending the relevant ones (i.e. the ones only for that shipyard) , now granted we could optimise it by limiting queries to say, the ship transfer window and once when you dock at a new station, but that still drives up the load significantly.
* Notification queue? Nice. Now we have TWO queues, one scheduler (and a partridge in a pear ~treeeeee~ )
* Oh, and a messaging app that pushes the messages through, but that's going to need either an update to the UI or some extra additions in the existing UI to allow people to handle ship transfer notifications.
* What happens if the push fails? Does this force a disconnect due to data not received by the client and lack thereof of response?