Because they can.
Instantiating objects, retrieving records from database when you need it, loading a full table with thousands of records, and the examples can continue indefinitely. .NET made this much simpler. In two lines you'll put a big pressure on your memory, and your clients will find your application not so responsive. Loading an XML document is so easy. You don't have to think to much, you don't have to count references, and remember to release memory when you don't need it.
In C++ to retrieve records from database was quite difficult. You didn't have datasets so you had to make sure you use them efficiently. Now, you have a rowfilter on client in dataset. Programmers think: “super cool invention, let's use it!“. Even if you use it to retrieve a record by it's primary key (where Find should do it very fast). In case you don't found it already, Rowfilter search linearily where Find is a binary search.
If programmers are not very experienced it's easy to write code with lousy performance. Then, people that don't trust .NET a lot see that the performance is bad, and discard .NET. But with a little coding discipline .NET applications can be made very fast. It doesn't take a lot to write high performance code. You have to want it, and you'll have it.