Why this simple DC Motor + PWM circuit is not working?
One way to understand a transistor when it is used as a switch is to assume that when the transistor is fully "on" the voltage between its emitter and base is 0.6V.

If you look at your system, when the Arduino sets the PWM pin to 5V. the voltage between the base and the emitter is 0.6V. Thus the voltage across the motor is 5-0.6=4.4V.

I don't know what's the specs of your motor, but 4.4V seems too small.

Using your components, there is a way to obtain almost 9V across your motor.

See the following schematics :







simulate this circuit &ndash; Schematic created using CircuitLab

Here you can see that when your transistor is conducting, the motor would see almost 9V and may run faster than just "buzzing".