There's not much difference. Pattern is the object, pattern-matching is the process that uses it. I can imagine the former is used to tag questions about how to construct patterns, string patterns etc. while the latter is used in questions about how to use them (level specification, Cases vs Select etc).
The difference is subtle and I'm not sure the average user will pick up that difference. I wouldn't object against merging them.
I'm not certain these should be merged. If they are, I feel that pattern-matching should be the master.
It is used preferentially: 54 versus 15 questions at this time
It is not easily confused with design patterns
pattern-matching is at the heart of Mathematica; not having such a tag seems wrong.
Since there are fewer questions tagged patterns it will be easier to re-tag those questions should we keep both; it would be impractical to re-tag the majority of the pattern-matching questions, now and in the future.
I propose that we clear out the patterns tag and try using it only for questions predominately about patterns. This can be a vague distinction and if it proves to be a useless one we can merge the tags. Some candidates for patterns:
How can I ensure that I am constructing patterns in the most efficient way possible?
Why doesn't PatternTest work with Composition?
How to use subscript in pattern names?
How to generally match, unify and merge patterns?
Why can't NumberQ be used as the head of a pattern?
What's wrong with this pattern of the form Except[Repeated[....]]?
Pattern issues weird warning
Questions like this might be tagged with both:
How to Combine Pattern Constraints and Default Values for Function Arguments