Porque estás recorriendo el for una vez más de lo necesario:
Se ejecuta el bucle, el contador $i está a 0, lo incrementa y ejecuta el código
El bucle se repite, el contador $i está 1, lo incrementa y ejecuta el código
El bucle se repite, el contador $i está 2, todavía se le permite ejecutar el código
Por tanto, el bucle se ha ejecutado 3 veces, y el count del array dice que tiene 2 valores en el array, teniendo en cuenta que empieza por 0. Serían 2 indices; $MyFetch4[0], $MyFetch4[1]. Cuando llega a la tercera ejecución del bucle, claramente el índice $MyFetch4[2] no existe.
La solución, es simplemente quitarle el =
No sé si lo ves más claro de la forma en que te lo he explicado.
Un saludo