Why free hit is not there in the Test Cricket?
In Twenty-20 matches, when a bowler bowls no ball (overstepping with front foot or back foot) then next delivery is free hit, but in the Test matches why is it not there?
The only reason to us for not having free-hits in unlimited overs cricket is ICC didn't wants it.
Why they didn't?
Reasons may be:
T20 cricket match is more about entertainment than a genuine cricket. Cricket fans want to see more runs (mostly in form of boundaries) rather than fine cricketing shots. And Free Hit allows the batsman to hit the ball without any fear of being out. So they can hit more and long boundaries if the bowler make mistake.
The Test cricket is the oldest form of cricket. Which has a different taste of cricket from it's starting. Where cricket fans want to see pure cricketing techniques rather than hitting freely. So Free hit is not suitable in the Test cricket. Also ICC does not change rules of Test cricket as much as possible. That's why free hit is not implemented in the Test Cricket.
Also, ICC implemented the Free Hit concept in the ODI cricket because it is another form of limited overs cricket where fans want to see pure cricketing techniques + more runs.