почему нельзя/плохо использовать вот такую конструкцию и/или что лучше её.
По той причине, что вы каждые 50мс обращаетесь к DOM, а это ресурсозатратно. Если расширение пишите только для себя, то пофиг. Нужно выбирать лучшее из двух зол. Если у вас нет другого способа, то нужно использовать какой есть, только немного его обдумать (например увеличить интервал таймера).
Но раз у вас расширение (а значит кроссбраузерность не нужна), то я думаю, вам лучше подойдет вот это
MutationObserver