The reason software vendors write software on windows to perform their own software update checks is that they are full of software developers.
Programmers write code to solve problems.
The product needs to be updated.
So it needs an updater. So they write an updater.
Windows scheduler service is quite capable of doing the minimum to do updates.
It has one annoying property, that it uses someone's security credentials.
If you make a scheduled task as a user, it will run merrily, until security policies force you to change your password. Bit of a pain.
Okay, so let's use the administrator; but they are often a domain administrator, and the network administrator doesn't want the software updater having the "keys to the kingdom".
Outside of Windows, it's traditional for software packages to have its own user-id, that is the owner of the files, has the appropriate permissions, and runs the update/scheduled tasks. It's a cultural thing and it doesn't happen on Windows ( I suspect largely because it's hard to create a user form an installer) It's relatively well documented to make a service, and to have a notification tray applet.
When your only tool is a hammer, every problem looks like a nail.
There are better ways to make systems that don't involve writing as much code, but if writing code is what you do, you'll stick to writing code.
Programmers were given a problem that could be solved by programming, so that's how they solved it. It's called "Functional Fixedness" in the Psych lit and being more motivated makes it worse.