What's wrong with the code, then, is that it was written under a little too much pressure for the developer to think clearly.
for ( int i=0 ; i < this.MyControl.TabPages.Count ; )
{
this.MyControl.TabPages.Remove ( this.MyControl.TabPages[i] );
}