It's because highlighters are working on the source text which has the html content.
If you want to "alter" the source, I'd recommend using HTML strip processor | Elasticsearch Guide [8.14] | Elastic as this will modify at index time the text. Then, highlighting will work the way you like.