Because sometimes there is a need. All the same reasons for/against using eval
in JavaScript can likely be shared with the use of reflection in Java, for example.
However, I agree with everything you quoted in your question. Many reasons for using it are ill-advised, and best done differently - but sometimes, there is still a need, or it is simply the "best choice" over other available alternatives. (I'd focus on the answers to Is there ever a good reason to use eval()? for additional reasons.)
+1 to your question for good research.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…