I have an active buzzer which I connected to an arduino pin (besides the other two pins being connected to Vcc and GND). I would expect the speaker to beep when I do a digitalWrite(PIN, HIGH) but it's the opposite. Indeed if I don't turn off the pin explicitly the buzzer will go off. This is the same for a small vibration motor.
Is there a sort of "convention" or even these devices have some weird default logic? And more importantly why?
Why active buzzers (and some vibration motors) require LOW in order to emit sound
... no, they do not ... they require a voltage difference across the power pins ... whether you permanently connect the positive and switch the negative, or permanently connect the negative terminal and switch the positive terminal is not relevant \$\endgroup\$