ko.utils.arrayForEach just uses a less verbose and easier syntax. It does not provide an index.
If you are really doing a lot of looping and/or potentially looping over many items, then an actual for loop will perform slightly better (I have seen some measurements show 8x better performance in some cases) based on avoiding the overhead of the extra function call. In the majority of cases though, the difference won't have a major impact.