Because ChatGPT did not render the <iframe> tag as HTML. It treated my response as ordinary text, so you saw the literal markup.
Note the third and first person.
I've seen many of the open weight models do this, or not, it's kind of random
A coworker commented that he thought they got dumber when they started simulating shame after getting something wrong