Here's two circuits for you to look at. I'm sure you can imagine flipping them over to the PNP equivalent if you want to.
simulate this circuit – Schematic created using CircuitLab
Let's assume that to actuate the relay, we need to have a minimum of 10 V across it (a reasonable assumption for a 12 V relay).
In the left circuit, if we want to switch the relay on, all we need is to put at least 0.7 volts between the base and ground, which we can do easily by putting essentially any voltage > 1 volt on the input node. Then the transistor will saturate, the voltage at node A will be around 0.1~0.3 V, and the relay switches on.*
In the right circuit, we need at least 0.7 volts between the base and node B. Remember, for the relay to be turned on, we need it to have at least 10 volts across it, which means that node B is at least 10 V relative to ground. So the voltage at the base needs to be 10.7 V relative to ground, and your input needs to be more than about 11 volts. But the microcontroller probably can't output 11 volts; it can only do 5 V and 0 V (or 3.3 V and 0 V, or 1.8 V and 0 V, depending on its supply voltage).
The transistor will still amplify the current, so the microcontroller doesn't have to supply as much current as the relay requires, but the voltage becomes a limiting factor. And even if you were to put 12 V on the input, with zero base resistance, you'd still have only 11.3 V across the relay, compared to 11.7~11.9 in the left circuit.
*note: This is a simplification, the required voltage depends on the resistor of choice and the current required by the relay. Don't worry about it, the important points of the argument still stand.