Basically, the difference is as stated already in the other answers, a difference in terms of students and location.
ESL= English as a Second Language
EFL= English as a Foreign Language
ESL is English which is usually taught to students in an English speaking country. EFL is English which is taught to students in a foreign, non-English speaking country. Beyond this, ESL and EFL teachers may teach differently in order to address ESL and EFL student needs. Because EFL students probably don’t have as many opportunities to speak English, an EFL teacher may plan many oral activities. ESL teachers, however, may spend time helping their students with the integration process—getting a library card, taking a driving test, etc. For more information about different needs and about the differences between ESL and EFL, check out this informative blog post connected to the Oxford University Press.