Я думаю, что вы прибили две веские причины: -)
MemoryCache имеет стратегию удаления, поэтому он может выбрасывать записи, которые больше не нужны или для которых вам больше не хватает памяти.
Словарь не «потеряет содержимое».
Обновление: MemoryCache является поточно-ориентированным и имеет такие методы, как AddOrGetExisting. Со словарем вам придется синхронизировать доступ самостоятельно (или использовать ConcurrentDictionary).