My personal opinion is that styled components creates an unnecessary and fuzzy extra abstraction on top of components.
styled.div`color:red` is a red-colored div. Hardly fuzzy.
Obviously you wouldn't actually write it like that because it's inline in your code so you can format it better, but the Tailwind version is less verbose and easier to read if you did.
const StyledButton = styled.button`
background-color: ${props => props.theme.primaryColor};
`