Edit:
Since the post of this answer things have changed in .NET 7. see this article for performance improvements.
https://devblogs.microsoft.com/dotnet/performance_improvements_in_net_7/
Kudos to @balrob for the heads up in the comments.
Keep in mind though that passing arguments on Activator.CreateInstance has a significant performance difference versus parameterless creation.
There are better alternatives for dynamically creating objects using pre compiled lambda. Of course always performance is subjective and it clearly depends on each case if it's worth it or not.
Details about the issue on this article.
Graph is taken from the article and represents time taken in ms per 1000 calls.