João Ricardo.
O operador OU nesse caso não funciona pelo seguinte.
O if está verificando se o contador é diferente de 33 e diferente de 37, e se atender essas duas condições, o contador é mostrado. Ou seja, se o número for 31, por ser diferente de 33 e diferente de 37, ele é mostrado. Já se o número for 33, não será mostrado porque 33 é igual a 33 e diferente de 37, ou seja, não atendeu às duas condições.
Se você colocar o operador OU, ele mostrará o contador se qualquer uma das condições for atendida. Ou seja, se o número for 33, ele irá verificar que é igual a 33 e diferente de 37. Ou seja, o contador será mostrado porque a segunda condição (33 diferente de 37) foi atendida.
O operador && diz que as duas condições tem que ser obrigatoriamente atendidas, mas o operador || diz que se apenas uma das duas condições forem atendidas, ele executa o código.
Espero ter ajudado.
Bons estudos.