Let me say this about diagnostic charges. Why would anyone want to use the equipment and diagnostic skills and labor of any repair shop for free - they have bills to pay. Nothing is free. Want it "free" then buy an appropriate scanner and other tools and learn how to trace and fix the cause yourself.If it's not covered under warranty they charge. All of them do that. A charge of $100 is reasonable from a dealer.
Just getting a code though is not worth a $100 diagnostic fee. But tracing the cause of the code is well worth the $100. A good mechanic (not a parts chaser) should not need more than about an hour to do it.