Why connect two power supply grounds?
Voltage is not an absolute value. It's pointless to say they're grounds and therefore are the same. It's like suggesting that I'm five miles away from New York and you're nine miles, therefore I just need to walk four miles to get to you. Except it's even worse than that, because that's a reference point, it's more like saying I'm five miles from my destination and you're nine miles from your destination. Are we near each other? We don't know unless our destination is the same place. Ground is just a name for your arbitrary point of reference.
For your voltages, all you have is a reference to a different point. Ground does not inherently mean 0V with reference to any other thing you want to call ground. Call your left thumb ground, a perfectly valid thing to do, and see if that makes sense to you.
So the ground on the battery and the ground on the Arduino could be quite different if referenced to one another or to a different point. The only way you can be sure you have a system with 5V and 9V supplies is if they have a common reference point.
A battery technically has a positive and a negative terminal. There actually is no ground terminal. The potential across the battery is the voltage which you will see labeled. A 9V battery can just as easily be used as a ±4.5V battery if the positive(+) lead was connected to a +4.5V rail and the negative(-) lead was connected to a -4.5V lead. I've actually seen this done for an audio amp circuit, though I can't recall exactly where. (Sorry for the lack of sourcing).
Semantics aside, let's consider why the grounds should be connected.The main reason I can think of is actually making somewhat more definitive potential differences. That was your 5V will read properly (on a meter) as 5V and your 9V will read as 9V. Otherwise, you have two different points of reference (from each of the two grounds).
The additional benefit is avoiding a "ground loop." When the grounds are not at the same potential level, you clearly have a potential difference. Therefore, you have current flow from one point in your circuit (ground of motor/Arduion) to the other. And it forms a circuit loop between those points. That's just wasteful of power.
Voltage is a difference between two points. The Arduino supply is 5 volts higher than the Arduino ground, and the motor supply is 9 volts higher than the motor ground. You can say nothing about their relationship to each other unless you tie them together. Worst case is they happen to be close enough to the same potential for your tests and far enough apart to fail in the field.
Consider the ground shown in your schematic. If that happens to be too far above the Arduino ground, the transistor might not be able to turn on, because the relative voltage of the pin to that ground will be too low. If that ground happens to be too far below the Arduino ground, the transistor might pull more current than it can handle or the Arduino I/O can source.