In GridView we write ItemTemplate in TemplateField and why do not write TemplateField in DataList.
GridView:
<asp:TemplateField>
<ItemTemplate>
.......
</ItemTemplate>
</asp:TemplateField>
DataList:
<ItemTemplate>
.......
</ItemTemplate>
DataList and GridView are different controls and they have different syntax.
GridView is more "powerfull" control. It can have such column types like BoundField, CommandField, TemplateField, etc.
There are large differences between these controls.
PS: You forgot Columns tag at GridView syntax in your question.