Personally I main snake and second DDD. I've also played ThatGuy's (Joel) mario on multiple occasions. The thing about it is... you have to play smart. Play to punish his mistakes and do whatever you can to not get grabbed. Bad DDDs very often go for almost nothing but grabs, you can use this to your advantage, if you are smart enough to not get grabbed, he will be the one feeling hopeless.
A few tips:
1) Do not attack his shield, ever. I know this is hard to do, but if you attack his shield, generally you will get grabbed.
2) Playing ThatGuy I know that Mario vs DDD can be pretty obnoxious for both sides. Mario spamming retreating SH fireballs makes it impossible for DDD to approach with a grab, forcing him to do other things, usually camping. This can turn into a camp fest which can be a problem. If you're not a patient person, just make sure your approaches are safe.
3) I don't know if you knew this but you can Cape DDD's upB. This can lead to an early kill if properly placed.
You can be as much of a campy pain in the *** as DDD. Don't get frustrated, keep your cool, and play smart.
EDIT: Do not go ike vs DDD lol. Mario has a better shot IMO. The hardest counter for DDD is MK. DDD has no answers to intelligent tornado spamming. G&W does fairly well. Personally I hate olimar, but maybe that's just me. Marth goes about even. Also, you say the DDD player wasnt that good. But the timing for an inescapable chain grab on marth is pretty tough (your friend should be able to upB out of it fairly easilly).