The VirtualBox host modules are build from source code on your machine. Modules for one kernel will not necessarily work (or work properly) on another kernel. They are typically recompiled after the kernel is upgraded.
When you install a new kernel version, your old kernel is still running. As Javier Rivera says, you must reboot to use the new kernel.
So if your goal is to run VirtualBox on the new kernel, you need to reboot; the modules will be loaded when you do (after being rebuilt from source if necessary).
However, if your goal is to use the old modules with the old kernel, you can manually reload them with modprobe
(as you've been doing).
If you believe it's a bug that VirtualBox modules don't keep working for the running kernel before reboot, you can bugreport that. If you're using the version of VirtualBox provided officially in Ubuntu (rather than the version from Oracle's software source), I recommend reporting this against downstream VirtualBox (i.e., against Ubuntu's VirtualBox). Please read this guide carefully first. There's also helpful information on bug reporting in this question.
If you can produce this with the upstream version of VirtualBox (especially if it happens on non-Ubuntu systems, but I don't think that's essential here), I recommend reporting it (or also reporting it) upstream (search first).
I recommend not accepting this answer immediately; maybe someone can better explain why the modules are unloaded.