Running a motor at a lower voltage won't break anything, but as ArcMan said, it will have lower torque/speed.
Reducing and increasing the DC voltage is exactly how speed control is attained. So running a 12V motor at 9V just means that it will run slower with less torque.
Given that, let me say that running a motor with a 9V battery will drain that battery very quickly unless that motor is really small.
A motor is most efficient at the rated voltage - meaning a higher torque/joule ratio. So less wasted battery energy, basically.
But the proper way to control motor speed is through PWM, which is like turning the motor on/off really fast so that it reaches some medium speed.