There's a version of Sparkle for Windows. I have no idea why apps don't adopt it.
I am constantly amazed and frustrated at how many apps I use on Windows have the following update process:
1. Pops up an alert telling me an update is available
2. I click a link in the alert opening my browser, taking me to a webpage full of links for different OSes and different architectures, which I have to search through to find Windows Intel x64
3. Wait to download the new version and then open it up
4. Spend 30 seconds clicking through a Windows Installer
Absolutely bonkers, especially considering some of these apps seem to release on an agile biweekly schedule. I usually procrastinate downloading updates because it's such a pain in the ass -- and that's not what you want your users to be doing.
On Windows, chances are that once you have a working installer you will be so deeply stockholmed that the idea that updates might go any other way than through a future incarnation of that installer is completely alien to you.
That being said, I think the way sparkle (and winsparkle, see sibling) present themselves looks delightfully NSIS (the good parts)
Along with some of the other comments, there is NetSparkle for C#-based apps that is cross platform: https://github.com/NetSparkleUpdater/NetSparkle (disclaimer: I am the primary maintainer of this repository).