Remove items from dictionary if the length of the item is 1 or less

Just use a dictionary comprehension:

d = {'acd': ['cad'], 'abd': ['bad', 'dab']}
res = {k: v for k, v in d.items() if len(v) >= 2}

Yes, you are creating a new dictionary, but this in itself is not usually a problem. Any solution will take O(n) time.

You can iterate a copy of your dictionary while modifying your original one. However, you should find the dictionary comprehension more efficient. Don't, under any circumstances, remove or add keys while you iterate your original dictionary.