A major design goal for Ship is to have everything you see be live. I love it when a colleague updates something from the web, or the app, and I see it instantly on my screen. Receiving real time updates from GitHub requires us to have a server on the public internet listening for events from them.
I also personally care a lot about CPU use and battery life on my Mac, and being able to offload a lot of work to a server is a benefit. Ship needs to consume basically every bit of information that GitHub makes available, and just the overhead of doing the http requests to GitHub is noticeable if you run that locally.
I hear what you're saying about the benefits of a one time purchase app that doesn't require any third party server, and I've spent a good amount of time thinking about how to make that work, but I feel like I'm not able to offer the user experience I want with that model.