Modifying the array while looping over it can cause strange behaviour. It upsets the internal iterator. Can you verify that it skips every second item of two consecutive occurences?
I suggest you use grep instead:
@text = grep { !m/^The website has been restructured/ } @text;