Why am i getting different motor speeds with the same voltage?
The thing that's changing here is the Internal Resistance. In any power source, you will have an internal resistance. This is caused by how the power source is constructed. For a chemical battery, the resistance is determined by a combination of the chemicals used and the surface area and position of the electrodes.



This internal resistance acts to limit the amount of current coming out of the battery. If you measure the voltage of the battery while the motor is on, you'll find that the voltage is actually lower than 9V. This is because the chemical reactions in the battery can only supply so much power, and once you start trying to take too much the voltage will sag. The power supply on the other hand has a very small internal resistance, so the voltage stays pretty constant (there's also a load of regulation and feedback stuff).

The solution to this is to use multiple batteries in parallel, which will allow you to draw more current while keeping the voltage at 9V.

Edit: as user3528438 mentions, the motor will also draw more current as you put more load on its output, although I'm assuming that you're putting the same load on it with the power supply vs the battery.