Both use a language that is C like, the arduino is compiled and translated to machine code. .net isn’t, it’s tokenized and pseudo compiled and then interperated at runtime.
Arduino is typically slower but much more efficient. There are very fast arduino boards as such as the intel Galileo and intel arduino 101 which can have multiple processor even. There are 32 bit arduino boards. Since it is translated to machine code it runs very efficiently and on a variety of low hardware processors. For about $4 you can run it on an esp8266 with built in wifi and make all sorts of little gadgets, say one that tells you when to water a plant or monitors an environment.
Fez (.net micro) is really based around a API set of .net, which is a an interpreted language and API set, I don’t know what has been done to optimize it compares to it’s big brother .net. Some instructions in the dot net set can take the processors attention for sever thousand prossesor instructions, hence people say it isn’t good for real time events. That’s true, and not true. If you use C sharp and avoid .net calls in the most critcal sections you can avoid most the pitfalls of .net. Since .net boards cost more, have more memory and more processor, they can support more of a user interface and are suited to talk to more things. It can need more hardware for some activities.
I use both for different things. I have a bunch of $4 arduino boards I can use as device monitors, they collect data, store it, and when report it. I have some very touchy equipment, that this is the best way to talk to. The .net board talkes to the arduinos and some directly and reprts to the user. I have a “tricorder” which does temperature monitoring, radiation monitoring, spectroscopy, infrared imaging, magnetic field, and atmosphere monitoring.
Most arduino boards would never be able to compile all the data and match it up and run a user interface most .net boards would be unable to talk to 15 different touchy instruments in real time at a price I could afford.
Personally I like programming the .net boards and the visual studio IDE. The arduino IDE reminds me of writing code in the 1980’s when compiler messages were cryptic and computers required rooms. When I have an arduino bug (usually because a manufacture changed specs) I often lose hair. On .net I can trace code and debug easily.