Yes, it was incredibly dirty from Crowder. He got beat and he hip checked Hayward while he went to the air. It got compounded by the contact with LeBron (which I don't think was dirty, he made a play for the ball).
But what Crowder did was definitely dirty. Don't see how anyone can rationalize it otherwise.