Disclaimer: my employer is PreEmptive Solutions, the creator of the Dotfuscator .NET obfuscator.
It can depend on the obfuscator you use and the options you enable in it. I am going to speak from experience with Dotfuscator.
There can be load time and memory footprint improvements of obfuscated assemblies if you use renaming and removal, partly because all/most of your methods, fields, etc are renamed to much smaller names (for example "ThisVeryLongMethodName(SomeVeryLongParameterName)" becomes "a(a)" so you gain some benefit in assembly size and usually with load time. In addition with removal you remove methods, etc. that are never call and again decrease the size of your binaries.
String encryption can adversely affect runtime performance to a slight degree as the strings must be converted back to human readable text at runtime.
If you use any other systems/techniques like Microsoft SLP's secure vm technology to render methods unreadable that will also incur a runtime performance penalty due to the secure vm.
Other obfuscation tools that do not produce managed code assemblies as an output but instead rely on a native code loader to "preprocess" their output can also incur an runtime performance hit (especially at load time).