Readability and maintainability, mostly. They are one character long mostly to help handwriting compact formulas, but their pros end there. For software, though:
“Programs are meant to be read by humans and only incidentally for computers to execute”
For readability the loop has to be short, so it is not really a problem, and it is also clear the iterated variable.
Long loops where the iterated variable is called far from the loop are anyway very bad for readability. There is a much worse problem in that code than i and j
Readability and maintainability, mostly. They are one character long mostly to help handwriting compact formulas, but their pros end there. For software, though:
For readability the loop has to be short, so it is not really a problem, and it is also clear the iterated variable.
Long loops where the iterated variable is called far from the loop are anyway very bad for readability. There is a much worse problem in that code than i and j