Como han dicho otros, la semántica precisa depende del lenguaje de programación que usa los términos, por lo que daré una evaluación puramente lingüística.
"Iterable" es una palabra bastante nueva, que obviamente se refiere a "iterar" y a los "iteradores" que muchos lenguajes han incorporado. Por lo tanto, estos tipos casi seguramente admiten un iterador, pero no necesariamente cualquier otra cosa, y no necesariamente nada más allá de La funcionalidad de iterador más básica: procesar cada elemento una vez. Invertir, eliminar, medir distancias, etc. puede o no ser compatible.
"Enumerable" se refiere a enumerar cosas, que pueden significar lo mismo que iterar, pero solo si el lenguaje ya no usa "iterable" para ese propósito. Si un idioma tiene ambos, "enumerable" casi seguramente significa algo más, probablemente algo más poderoso. Lo más probable es que admitirá la noción de conectar cada elemento con un índice numérico único, y probablemente permitirá el acceso aleatorio (por ejemplo, recuperar el tercer elemento antes que el primero y el segundo).
Eso es todo el significado que puede inferir razonablemente de solo las palabras. En cualquier situación concreta, consulte los documentos API de la biblioteca estándar.