Esto se debe a que OR tiene menor precedencia de operadores que Y. Cada vez que la base de datos ve una expresión como
A AND B OR C
el AND se evalúa primero, es decir, es equivalente a
(A AND B) OR C
Así que si quieres explícitamente
A AND (B OR C)
en su lugar, debe poner entre paréntesis.
Esto, por cierto, no es específico de SQL. El orden de precedencia de estos operadores es el mismo en todos los lenguajes de programación que conozco (es decir, al menos scripts de shell C, C++, C#, Java y Unix).