Потому что strpos "гара" в слове "гараж" - это НОЛЬ. Читай документацию и проверяй правильно. Нужно не === true, что в принципе невозможно, потому что чистое булевое true не может быть возвращено как позиция вхождения подстроки, а !==false использовать.
Ну и да: "Забагованный PHP". Правильно. Вини во всем машину Она всего-то делает то, о чем ты ее просишь. Другое дело, что ты не знаешь, что просишь.
В данном случае, технически, и то и то работать будет ок. Но для кириллицы mb_strpos, конечно, будет разумнее использользовать, ты прав. Скажем так, пока нам не нужно искать со смещением, нам пофиг, какой вариант функции использовать. Но если нам нужно передавать параметр offset, с не мультибайтовой функцеий начнутся сюрпризы.