Praktisch ist da erstmal kaum ein Unterschied. Du kannst ein <p> mittels CSS genau so stylen wie eine <div>.
ABER: Es ist nun mal per Konvention so festgelegt, dass ein <p> ein Paragraph, also ein Textabsatz und eine <div> ein Container, also ein allgemeiner Website-Baustein ist.
Und genau deshalb sollte man die beiden Tags auch entsprechend verwenden. Jedenfalls solange man möchte, dass die eigene Website durch Crawler, wie den von Google z.B., gut erfasst werden können soll.