The primary reason is that taxing is done at state, country, and city levels and they all apply different amounts in different areas. The tax can vary just crossing out of a city and into an unincorporated area or between neighboring cities. So rather than having different prices when you provide services for customers in different locations, it's easier to separate it out.
Like I used to do tech support for small home based businesses mostly, and so I didn't have a "place of business". I had three sets of customers, one lived in my city and county, another lived in my city but a different county, and another lived in that second county in a different city.
Originally, I was just charging a set hourly rate and eating the tax cost even though it was a pain to figure out the math. The problem came when with some of those rates, because of rounding, charging that amount for one hour might work ok, but charging that same amount for 2 hours or 3 hours would make it off by one cent and there was no way to reconcile it for the accounting software and tax forms and such. And I didn't want to charge pennies. So I just made it easy and all new customers I charged tax separately.