Repeat is just a very simple version of For. You can nest For's and still get the current index of the outside loop - because it has a name, so you can do LoopIndex("parent loop name") - but if you nest Repeat conditions, it's impossible to retrieve the index of the outside loop.
The main reasons it exists are clarity ('Repeat 100 times' in some cases is clearer than 'For "i" from 1 to 100'), and for learning Construct. I've seen a number of new users struggle with the concept of loops in the past, and 'Repeat' is a very simple condition to explain and understand. Once they grasp that, it is much easier to explain a For loop (and other loops) in terms of a Repeat loop.