1. pydantic by default ignores extra fields - it's useful when I make an API call and want to extract and validate only certain fields from the response, while dataclasses throws errors if you don't specify all fields, and this behavior can't be disabled
2. pydantic is more customizable - I can overwrite the BaseModel if I have a custom need
3. pydantic seems to integrate better with python typing - I'm not sure how to explain this one, but it feels more natural and dynamic
I'm not sure what the performance concerns are, though