Little, curious to know Is there any specific reason for doing it. On other hand keeping price within "Buy now" or "Add to cart" button will reduce user motor skills and increase efficiency.
2 Answers
Psychology.
People go on a e-commerce website when they have an intention of buying something or they hear about offers and discounts. Generally, people look at the product first and then the price of it; so the first mental comparison happens between the product and price, and if the price is accompanied with offers the will of buying it becomes more powerful. Once the mind has decided on buying the product, users look for the buy now button where the brain doesn't do any comparison and users just hit the buy button without a second thought.
So to avoid any mental confusion it's best way to let the users make their mind between product and price without a thought of buying it at first glance.
To allow for people to change quantities. Below is an example of a product where the customer can buy multiple quantities of the product and add them to the basket. If the price was in the "Att to basket" button, the value would need to change based on the quantity, and if it was a high value item (a TV perhaps) then the price could become too big for the button and ruin the styling.
By having the price outside of the button you can see that, in this case, the item is £64.00, and you then want to add 1 of them to the basket.
Using the screen above, you can also then easily see the discount for an item. Ok, that could still be there if the price was in the button, but that might lead to the expectation of the saving changing as the price does, so you can see that you're making the saving multiple times over.