The normal case is that Linux systems have the RTC (real-time clock) set to UTC, and the conversion to local time is done in userspace based on time zone data and the TZ
environment variable. This is "less bad" because it keeps the system RTC monotonically increasing, and applies any time zone magic later, ensuring for example that no files will normally have a timestamp in the future (which can easily happen at least once a year, if the system RTC is set to local time). As Ken pointed out, the RTC itself has no concept of a time zone, only time.
As you have found, this causes issues when dual-booting with a system that does not normally operate that way, like the Microsoft family of operating systems which generally expect the RTC to be set to local time. Yes, Windows NT (I think going all the way back to NT 4, actually) can work with the RTC set to UTC, but at least last I looked it wasn't really a supported configuration and there were a number of caveats.
The easy solution in your case is probably to set the RTC to local time, tell your Linux system that the RTC is set to local time (the exact mechanics of doing this varies by distribution and release version, but apparently in Ubuntu you set UTC=no
in /etc/default/rcS), and then configure the operating systems such that only one of them (preferably the one you use the most, since the time displayed in all others will be incorrect twice a year until it has been booted and had a chance to correct it) handles daylight saving time changes. And live with the downsides, which should be managable on a single-user system.
You could also set the Windows side to use UTC as a time zone and turn off automatic daylight saving time changes in Windows, and keep Linux set to have the RTC in UTC and display the time converted according to its practices. However, this will cause Windows to display the date and time in UTC, which might not be what you really want. It's not a big issue for us Europeans, who are at most something like three hours off from UTC, but might be more of an issue in the US. This is likely more realistic an option if you only use Windows occasionally, and your primary OS is Linux or some other RTC-UTC-aware OS.