Wenn /wp-admin/ und wp-login.php wirklich beide dicht sind, dann kommt die Mail nicht von dort. retrieve_password() lässt sich von jedem Formular im Frontend auslösen, und das häufigste davon ist die WooCommerce-Seite /mein-konto/passwort-vergessen/ — eine ganz normale Seite, von deinem htaccess-Schutz überhaupt nicht betroffen. Dasselbe gilt für Login-Formulare aus Theme oder Page-Buildern (Elementor Pro, Ultimate Member und Konsorten).
Schau dir die Mail selbst an: der WordPress-Standardtext und der von WooCommerce unterscheiden sich deutlich, damit siehst du sofort, welcher Weg benutzt wurde. Und im Access-Log nach POST-Requests suchen, einmal auf wp-login.php und einmal auf die Konto-Seite. Eins von beiden taucht auf, und dann weisst du, wo du ansetzen musst.
Falls ausser dem einen Admin niemand ein Passwort zurücksetzen muss, ist der einfachste Riegel: add_filter( 'allow_password_reset', ... ) und für Benutzer mit manage_options false zurückgeben. Damit läuft die Anfrage für Administratoren ins Leere und es geht gar keine Mail mehr raus, egal über welches Formular sie kommt.