1.5v DC motor with 3.3v controller

You need to measure the current the motor needs, and compare to that under PWM.

With very low voltages like this the voltage drop across the free-wheel diode will make the speed/duty-cycle
curve decidedly non-linear as the motor might spends considerable proportion of its time at about -0.8V due
to the diode conducting, and might be spending a considerable amount of time just turning with no current
flow.

You should not expect the duty cycle response to be linear in slow-decay mode which is
what your setup is.

Synchronous rectification mode is the only nominally linear mode, and that takes 2 switching devices.

You would learn an awful lot from seeing the waveform across that motor - it isn't what you might think
due to the inductive kick-back, the diode, and the motor's (rotational) back-EMF.

Also the transistor may be struggling - is it a genuine 2N2222 part for instance? Try a 150 ohm
base resistor, not 270.