Why debug.log doesn’t work?

Based on this question:

You have @ini_set('display_errors', 0); – which will tell PHP (not
WordPress) to stop displaying errors. WordPress requires errors to be
turned on in order for it to pass them to the appropriate place.
define('WP_DEBUG_DISPLAY', false); or define('WP_DEBUG', false);
should take care of hiding them on the front end for you.