Como outros já disseram, a semântica precisa depende da linguagem de programação que usa os termos, então darei uma avaliação puramente linguística.
"Iterável" é uma palavra bastante nova, obviamente se referindo a "iteração" e aos "iteradores" que muitas linguagens construíram. Portanto, esses tipos quase certamente suportam um iterador, mas não necessariamente qualquer outra coisa, e não necessariamente algo além a funcionalidade mais básica do iterador: processando cada item uma vez. Reversão, exclusão, medição de distâncias etc. podem ou não ser suportadas.
"Enumerável" refere-se a enumerar coisas, o que pode significar o mesmo que iterar, mas apenas se o idioma ainda não usar "iterável" para esse fim. Se uma linguagem possui ambos, "enumerável" quase certamente significa outra coisa, provavelmente algo mais poderoso. Provavelmente, ele suportará a noção de conectar cada elemento com um índice numérico único e provavelmente permitirá acesso aleatório (por exemplo, recuperação do terceiro elemento antes do primeiro e do segundo).
É sobre todo o significado que você pode deduzir razoavelmente apenas das palavras. Em qualquer situação concreta, consulte os documentos da API da biblioteca padrão.