Why each save makes it worse
Opening a JPEG decodes it into pixels. Saving it runs the encoder again: the image is transformed, the coefficients are quantised, and detail is discarded.
The critical point is that the second encoder cannot tell the difference between real detail and the first encoder's artefacts. The block edges and ringing left by the first pass are treated as genuine image content, and they get quantised in their turn — producing new errors on top of the old ones.
Do this repeatedly and you accumulate layers of approximation, each built on the last. That is generation loss, and it is why the damage compounds rather than plateauing.