They are very different mechanisms. A static include happens at translation time and has no means to pass data to it in a controlled fashion. The fragment is simply included in the JSP source as if it had been typed into it.
A tag on the other hand is evaluated at run time and has a defined interface for passing data to the tag. It is a much more modular approach to reusable "fragments".