People typically place heroes like Heavy Cavalryman, Spartan and Light Summoner in the front row, as it means that their shield can block attacks and keep the back row safer. However, units in the front of the formation tend to attack first, so there are several good reasons for having offensive heroes in front. One of the other reasons for having offensive heroes in the front is that they can use relics to inflict debuffs on the opposition, and this can influence the outcome of the fight. This is one of the reasons why paywall heroes like Pandora, who is typically not cheap, can easily win fights by themselves. Further, due to there being more AoE heroes later on than in the early-game, having shields in the front row can be less effective at shielding the back row. There are also heroes like Hell Keeper, who can imprison heroes in the front row and prevent them from using their abilities, that can easily render front row shields less useful.
There are still tank options like Undead Skeleton without shield abilities, however, and people also tend to place that in the front row. In some fights, however, offensive area-of-effect heroes will still be necessary in the front row because you need to dislodge or debuff the enemies quickly. Undead Skeleton can still be useful in the back row, because it absorbs attacks from enemy heroes later in the fight. Due to the priority of move order, and the power of offensive moves and debuffs in this game, there are many benefits to having offensive heroes in the front row.