Device manufacturers write drivers for Windows. They don't write drivers for Linux. So it's probably (mostly) the fault of the manufacturer.
Another thing is that Windows has an abstraction layer called NDIS which network drivers communicate to. This abstraction is complete enough that if you have a compatibility layer for NDIS, you can usually use Windows drivers directly on Linux. The project is called ndiswrapper. https://en.wikipedia.org/wiki/NDISwrapper Edit: to be specific, maybe it would be helpful if Linux had a similar abstraction for drivers to use?
As for the updates, that depends 100% on your distro and your own settings. If you're on Ubuntu, you can just uninstall the update-notifier, and/or edit /etc/apt/50unattended-upgrades to install updates without notifying you all the time.