Откуда брать текущую дату для SQL запроса — из php или mysql?
По производительности никакой разницы не будет, тут как вам удобнее, только если будете использовать второй вариант - используйте биндинги https://www.php.net/manual/ru/mysqli-stmt.bind-par... а еще лучше, использовать не голый mysqli, а какую-нибудь ORM

Что касается разницы между этими двумя способами, то она может проявляться в часовых поясах. Например, сервер mysql может иметь часовой пояс Владивостока, а в php у вас будет часовой пояс Москвы - тогда вы получите разные результаты. Этой проблемы можно избежать, если вы при инициализации приложения установите нужный часовой пояс и для сессии mysql, и в php

https://stackoverflow.com/questions/930900/how-do-...
https://www.php.net/manual/ru/function.date-defaul...
Если по скорости, то однозначно CURDATE()/NOW()/CURTIME() - в этом случае вы просто передаете строковую константу в запросе (кто скажет, что это не строковая константа - ничего не понимает в программировании), во втором - сначала создается объект со всеми накладными расходами, потом вызывается его метод, который возвращает результат, который помещается в переменную, который потом из нее извлекается и подставляется в запрос, который после кучи лишних телодвижений уходит наконец в СУБД.  А php - это все-таки не бинарный код, несмотря на все ухищрения разработчиков. А в первом случае всего этого нет.