Retina, 75 bytes
^ A2345678910JQK¶ \G(10|.) $&H $&D $&S $&C Dr` \S+ G1` ^$ No missing cards
Input/output is a list of space-separated cards. Output has a leading space.
Most of the code deals with building the full list of cards that should be in the deck:
^ A2345678910JQK¶ \G(10|.) $&H $&D $&S $&C
First, we prepend a newline to the input, with all possible values of cards, then for each character of this line (or the couple of characters
10) we build the list of all possible suits of that card.
This is a deduplication stage, it splits the string into chunks consisting of a space plus some non-spaces and keeps only one occurrence of each chunk. The modifier
r makes this operate from right to left, keeping then the last occurrence of each chunk.
We keep only the first line, which now contains the missing cards.
^$ No missing cards
If the result is empty we replace it with "No missing cards"