How can I make my gear simulation in the BGE work?
This problem is caused by the moment and rotation restraints on the top gear. To fix this, I recommend removing them:

Now, if you run the simulation,
The top gear is responding to the collision with the bottom gear. This is progress. (smile! - it almost works)

We just need to get the gear to ignore translation, but still respond to rotation. This can be done using a rigid body joint.

Now, we need to apply the right settings to the joint.

This joint will allow no translation, and will only allow rotation along the X axis. But this joint works relative to another object. We need to put a stationary object in the target field.
A static cube will work. (any other static object should also work as well)

Now, we simply set that cube to be the target object.

The top gear will now have it's X,Y, and Z translation locked to the cube's position, and since it is static, it will not be moving. The top gear's Y and Z rotation is also locked to the cubes rotation, and since it is a static cube, it also will not be rotating. The last step (this is optional) is to paint it your favorite color.

Now we can test the simulation:

Yay! it works!