Ответ на ваш вопрос находится на той же странице, только чуть выше (и формулируется методом "от противного"):
Сравнение выполняется численно, если оба операнда — числовые строки, или один операнд — число, а другой — числовая строка.
В вашем случае это условие не выполняется, поскольку один из операндов не является ни числом, ни числовой строкой. Следовательно, операнды сравниваются не как числа. А если не как числа, то остаётся вариант сравнивать их, как строки. То есть выражение вычисляется, как
"a" > "18"
что в итоге будет приведено к
(ord("a") > ord("1"))
и закономерно вернёт true.
Ту же самую мысль (и тоже от противного) доносит и текст на вашем скриншоте:
До PHP 8.0.0, если строка (string) сравнивалась с числом или числовой строкой, то перед выполнением сравнения строка (string) преобразовывалась в число.
Это означает, что в современных версиях языка такое преобразование не происходит. То есть опять же, число с нечисловой строкой сравниваются как строки.
Надо сказать, что для меня и самого такое поведение оказалось новостью. Что, в общем, вполне объяснимо - мне редко приходится сравнивать числа со строками.
И есть у меня подозрение, что преподавателю тоже интересно узнать ответ на этот вопрос 😂