1) You have to pay for it.
2) It takes a lot of time---an exhausting half-day for the test itself, plus travel time, plus whatever prep time you put into it (and you should do some if you're re-taking to try to up your score). That's time that could go into schoolwork, ECs, getting an early start on your college essays (late in your junior year), or prepping for other tests like SAT II subject tests or AP tests.
3) Although under the College Board's new "score choice" policy (and the ACT's longstanding policy) you get to choose which scores you want colleges to see, a few colleges are now demanding to see all your scores. Most colleges say they only care about your best scores, but that doesn't quite square with their wanting to see all scores; so having some weaker scores in the mix might end up hurting you.
4) If you take it early (e.g. in sophomore year) and don't do as well as you hope it could be demoralizing or set your expectations lower than they should be when you take it again "for real" as a junior. Most people score higher in junior year than in sophomore year due to more academic experience and intellectual maturation
The upside of taking it early:
1) If you do really well, you're done and can concentrate on other things next year.
2) If not, you'll have a good diagnostic of the things you need to work on to get a higher score next time.
3) With "score choice" you don't need to worry about the vast majority of colleges ever seeing your sophomore year score, UNLESS it's so good that you want them to see it. In other words, it "counts" only if you do terrifically well.