Lewis Hamilton has described the Canadian Grand Prix as "one of the worst races" he has ever driven in F1.