Потому, что выражение ["mc"+i] - вычисляется на момент вызова, а не когда написали. А поскольку вы используется не локальный для клипа i, а его предка, то к моменту получаете 12.
Надо так

Код:
for (var i = 1; i <= 12; i++) {
var mc:MovieClip = this["mc" + i]["fon" + i];
mc.i = i;
mc.onPress = function () {
this._parent.startDrag (false);
};
mc.onRelease = function () {
stopDrag ();
trace (_parent["mc" + this.i]._y);
};
}