Alpine Linux come in different variants, the one named "Virtual" is defined as,
Similar to standard. Slimmed down kernel. Optimized for virtual systems.
How is the kernel "slimmed down" and how is it "optimized for virtual systems"?
This was published after the other answers and expressly answers the OP's question:
"How is the kernel "slimmed down" and how is it 'optimized for virtual systems'?":
linux-lts is the stock modular kernel and is configured for a generous selection of hardware.
linux-virt (linux-lts, see the -virt configs) is recommended for Alpine Linux guests, and disables most hardware in favor of a commonly-virtualized subset of drivers.
linux-rpi is optimized for the Raspberry Pi.
Stumbled across this looking for an answer related to the Raspberry Pi Kernel; hope this saves others ages pulling their hair out of their heads searching for an unambiguous answer about the differences...
If you want a more detailed answer, the best approach is comparing the two kernel configuration.
For x86_64, for example, you can download these two config files: https://git.alpinelinux.org/aports/plain/main/linux-lts/config-lts.x86_64 https://git.alpinelinux.org/aports/plain/main/linux-lts/config-virt.x86_64
They are respectively lts kernel version (long term support, which is included in Alpine standard), and virt (included in the Virtual flavor). At the time of the writing, the kernel version is 5.4.61 (edge version ).
Once you got the difference, then you can check what is each option supposed to do. There's an old question in StackOverflow that explains how to get the kernel options and related explanation of each option: https://stackoverflow.com/questions/46574447/how-do-i-find-linux-config-options-in-menuconfig
Hope it helps.