It’s a story of legacy. Palm couldn’t have used a VM when they started, for performance reasons (and quite likely they were aware of the efforts at Xerox with Smalltalk at least at some point - and you can clearly see that from, for example, the execute-in-place design where applications are stored only in RAM, and run from there). And when the time came to switch CPUs, they took the opportunity to virtualize the applications. It may not be the cleanest solution, indeed. But it got them running on ARM quickly, and allowed them to continue shipping devices while they were working on the next features.
Yes, if you look only at the final result, this is not how you would have done things. But if you put it in perspective of the history, the engineer culture of that time, and the market and hardware constraints, to me it seems to make sense. And indeed it worked for Palm, and allowed to spawn Android on a similar, but cleaner, base. Meanwhile, Cobalt, the clean native ARM stuff with bits of BeOS inside it, never caught on.
Also, as a former ARM-based Palm device user, I can tell you that the battery life was great, and the apps were super fast. The 68k emulation wasn’t getting in the way at all, and compatibility was great with existing apps. And I was running the cheapest offer at the time, A Palm Zire 21with just 8MB of RAM and 120MHz CPU.