Hola,
Lo que ocurre no es un "error", dice que es un warning, o sea un mensaje de "atención".
Lo que expresa es que se aplica la lógica de short circuit o evaluación perezosa. Consultas parecidas a estas se respondieron en el práctico anterior. Short circuit está explicado en el teórico.
En este caso con x=2, los if de las líneas 4 y 8 son falsos en la primera expresión lógica.
x>=5 es falso (línea 4)
x>=3 es falso (línea 8)
Entonces, con el warning avisa que no evaluará el segundo término de los &, porque ya sabe que el resultado final del & va a ser falso (por definición del &, falso & falso == falso & verdadero == falso).
En las líneas 2 y 6 ocurre que el primer término del & es verdadero, entonces está obligado evaluar el segundo término para resolver el &. (porque verdadero & falso == falso, pero verdadero & verdadero == verdadero). No puede sacar provecho de la evaluación perezosa.
Si no querés que aparezca más este warning, te sugiero que utilices && y ||.
Otra posibilidad es que escribas:
warning('off', 'Octave:possible-matlab-short-circuit-operator');
y no te va a avisar más sobre ese warning.
Espero que haya quedado claro,
Eduardo