If you look at the definition for SpawnActor, and then at the definition for ConstructObject (since Actor is a UObject), you’ll see a lot more goes on then simply "new"ing the object. Unreal has its own memory management system so you don’t have to worry about calling delete. You can always force garbage collection if you know its a good time in your game for GC to happen. Furthermore, an Actor has to be registered to a scene/level/network/etc which all happens in SpawnActor.
So basically SpawnActor is designed to make your life easy.