In UVM Cookbook, it is written that class object instantiation is done at run time. But before run time, during compilation/elaboration also we may have all the details of class.
As depicted in the below image (Taken from UVM Cookbook), it is showed that Module and Interface instant creations are done in elaboration phase, but class object creation are done at run time.

Consider this sample example.
// Inside any .sv file
class A;
int a;
endclass
A x;
initial
x=new();
Now in this case there is no need of creating class at run time, as we have all the details of class available in compile/elaboration time like another module or interface details.
So why in Systemverilog, specifically only class instantiations are done at run time?
Even in C++ also object creation are not done at run time.
Note : In the question, I am talking about simple classes, not using inheritance, in which run time creation may become mandatory. By Creation I do not refer to memory allocation, as memory for all (module, interface, class) will be allocated during simulation only. I am just taking the context of the image.