Per core makes much more sense than per instance.
It's about paying for for the software to get through a certain workload in a certain time.
In your model of per-instance pricing, if I only had machines with limited amounts of cores and needed say 4 instances to get through that workload in a certain time, I would be paying 4 times as much than if I had bigger machine with more cores to throw at it. To run the same workload in the same time, with roughly equal amounts of hardware (except some motherboards etc).
You pay more if you use more cores because the software you license gets to do more.