The culprit is... an increase in the battery's internal resistance due to the coldness. When the internal resistance increases, it leaves less voltage for your bike when it's running, and less voltage means less top speed. It also means lower current which also means less acceleration. Insulate your batteries so there internal temperature remains high for as long as possible. See... you want your battery to operate at a warm temperature but it's the opposite for you wires. The only issues of running warm is the possibility of running it too hot which is unlikely in wintry weather and it also decreases the "calendar life" of lithium in general, but I seriously wouldn't worry about that as it's only running warm for a relatively short duration(as compared to its temperature during storage) and you're more likely to see its cycle life expire first if you use it often enough as is implied by your dedication to use your bike during the winter.
There are other aspects, though not as influential, as well. When the temperature decreases, the air becomes denser which increases the air drag/"wind resistance". Another artifact of denser air is lowered tire pressure, so make sure to check that. Also, I think someone also calculated the coefficient of rolling resistance goes up by 50-100% on clincher tires when it's "colder", but I don't know if they controlled the above effect or not. At higher speeds, though, rolling resistance only makes an impact of <1 mph.