Потому что отключение заставляет вас писать более безопасный код.
Если мистер О'Мэлли зарегистрируется на вашем сайте, magic_quotes_gpc превратит его фамилию в О'Мэлли, и когда вы вставите ее в базу данных, все будет хорошо.
Проблема в том, что magic_quotes происходит из-за надстрочных знаков - которые не обязательно работают как экранирование для вашей системы баз данных. О'Мэлли может работать, но также возможно обойти это экранирование и выполнить SQL-инъекцию.
Если magic_quotes не включены, вы получите строку O'Malley, и она будет нарушать оператор SQL, такой как
INSERT INTO users (...) VALUES (...,'O'Malley',...)
Обратите внимание, что строка действительно завершается после O.
Кроме того, это приятнее: если бы вы, например, отправили электронное письмо с его именем, вам пришлось бы раздеться - без всякой на то причины. Если нет, вы получите электронное письмо от мистера О'Мэлли.
(Конечно, для ДЕЙСТВИТЕЛЬНО защищенного кода обработки базы данных вы бы хотели использовать параметризованные запросы, так как это лучший способ предотвратить внедрение SQL. И если вы параметризируете, то вам не нужны косые черты в любом случае, и это пустая трата времени, чтобы PHP добавил их.)