A better title would be “Why is there no RAII in C#/VB”. C++/CLI (The evolution of the abortion that was Managed C++) has RAII in the exact same sense as C++. It’s all just syntax sugar for the same finalisation pattern that the rest of the CLI languages use (Destructors in managed objects for C++/CLI are effectively finalisers), but it is there.
You might like http://blogs.msdn.com/hsutter/archive/2004/07/31/203137.aspx