索引であるインデックス(Index)の「i」でしょ?と思った方、それが正解だと思います。
確かに、i, j,など1文字変数をインデックス参照などに使われるループカウンタとして使う慣習は最初の高級言語であるFORTRANに由来します。
当時のFORTRANではデフォルトで変数の型宣言が不要であり、アルファベットI~Nの1文字目の変数名が整数型、それ以外は実数型という言語仕様になっていました。(変数名は6文字までOK)
FORTRANはもともと理工系向きの言語として設計されており、数学の式の習慣に則って整数にI,J,Kが採用されていたとしても不思議ではありません。
現に数学の総和(シグマ)はiを添字として使ってますし(最近のΣの公式ではkが採用されてますね、iは虚数[imaginary number]と混同されるからかな)、デカルト座標にはI,J,Kが使われます。
FORTRANの作者であるBakusは、この命名規則については『Iから始まる6文字に決まったのは、みんな添え字にI、J、Kをつかっていたので、(L、M、Nを)気前よく増やした。』と言っています。また、I~NなのはI-Ntegerというアメリカンなシャレもあるかも知れません。
アルファベットの「I」は、Index,Iterator,Integerの頭文字ですから変数として使用するにも都合がいい。また、アルファベットの「I」の起源であるギリシア文字のイオタ(iota)は小さな変化の意味があり、カウンタとは小さな変化を起こしているともいえるでしょう。
ループカウンタ変数の名前に下手に悩むより慣習のまま「i」を使うのが悩まず楽でいいですよね。
あと、「j」と「k」をループカウンタ変数として使用するのは「i」の次の文字という自然な理由です。
参照:
Why do most of us use 'i' as a loop counter variable?
[Why are variables “i” and “j” used for counters?]
(http://stackoverflow.com/questions/4137785/why-are-variables-i-and-j-used-for-counters)
[なぜ for 文に使うループ変数は i なのか?]
(http://blogs.wankuma.com/jitta/archive/2007/01/25/58555.aspx)
[ループ変数 i, j, k]
(http://togetter.com/li/138510)
[C++0xの完全なドラフトが9月に出ること、および、Iotaについて]
(http://cpplover.blogspot.jp/2008/07/c0x9iota.html)
[【数列】シグマ記号(Σ)は「和」を表す]
(http://oto-suu.seesaa.net/article/243869238.html)