Perchè sostanzialmente agiscono a due livelli differenti e in due modi del tutto diversi:

.htaccess agisce a livello del protocollo http, ovvero PRIMA che il codice php della pagina sia stato eseguito, mentre php agisce dopo, quando la connessione http è stata già stabilita.

La differenza la vedi nel fatto che .htaccess non è in grado di accettare una username e password passate tramite una maschera post presente su una pagina, ma necessita di credenziali passate sulla url o tramite la apposita popup del browser, e se non ricordo male non gestisce nemmeno le sessioni (ogni pagina visitata vole di nuovo le credenziali) mentre php può fare molto di più, naturalmente.

Diciamo che per farti capire, .htaccess è il cancellino di casa, php è la porta di casa: entrambi proteggono l'accesso alla tua casa, ma lo fanno in modo differente ed agiscono uno dopo l'altro, separatamente.

Il che significa che i due sistemi non sono compatibili (le chiavi sono diverse e non possono mai essere uguali) e non vanno usati insieme (nel senso che non possono comunicare in nessuna maniera).

Naturalmente, nessuno ti vieta di metterli entrambi, ma questo non rende davvero più sicuro il tutto, nel web, e quindi è meglio spendere del tempo a fare funzionare bene solo uno dei due, naturalmente quello di php che ti permette poi di fare molte altre cose, come gestire le sessioni e riconoscere personalmente i tuoi utenti.