Why active buzzers (and some vibration motors) require LOW in order to emit sound
The load (active buzzer circuit) is between Vcc and the GPIO pin. When the GPIO pin is high, there is no voltage across the load so of course there is no sound. When the GPIO pin is low there is Vcc (almost) across the load so you get the beep.
The propensity to put loads between Vcc and the GPIO is related to physics- n-channel transistors of the same size are much better at sinking current than equivalent size p-channel transistors because of carrier mobility differences, if memory serves.
It may not be as important in the case of the GPIO pins on ATMega and similar microcontrollers because the designers have gone to pains to make the source capability of the GPIO pins similar to the sink capability.
If you want to try it the other way, you would connect the (+) pin of the active beeper to the GPIO pin and ground the (-) pin.