This seems a bit complicated, why not just do a normal for loop? I think it looks cleaner and won't throw this error. Just decriment i if you remove something. at least mine works, anyway. Those sort of auto-loops are more for coding convenience, I thought, so if they aren't being convenient then just don't use them.
for (int i = list.size() - 1; i>=0; i--) {
String fruit = list.get(i);
System.out.println(fruit);
if ("banane".equals(fruit)) {
list.remove(fruit);
}
}