The problem is that you don't use the loop variable (i) within the loop. You execute the same instruction two times (once for i=4 and once for i=5). More exactly, I think you execute it only for 5, since you use ++i instead of i++, so the loop variable is immediately incremented.
Just to correct this, there is no need to convert the loop from "for" to "while", this change is enough:
for (int i = 4; i < 6; i++)
dbPlaySprite ( i, 4, 5, 200)
However, be aware that dbPlaySprite does not automatically loop through all animation phases. To have the desired effect, it has to be called repeatedly every frame.