Why not? Does it matter?
Most of the time .do indicates that the Struts framework was used. It makes it easy to map all *.do requests to the Struts controller servlet. You wouldn't want to map *.jsp to the Struts servlet, because then you couldn't have any Struts-free .jsp pages; so something else is used.
Another reason might be backwards compatibility. Maybe a site was formerly implemented in Cold Fusion, resulting in lots of *.cf URLs that are all over the place. Instead of breaking all those URLs, you simply map *.cf to the JspServlet (in addition to *.jsp), and -presto!- all your *.cf pages can now contain
JSP code instead of Cold Fusion code.