I think its just for psychological reasons, like Big K said. In business studies, a marketing tactic is to have that "99" at the end to make it seem much cheaper and more worth the money. $1.99 would look very nice against something like $2.01, even if its 2 cents difference. Also, customers would believe that if they keep buying something that is even cent cheaper, they could save money in the long run.
Plus, it does give a sense that the shop would reduce the price of the product for the sake of the customer, at the sacrifice of some profit. Just my thoughts
