I am receiving error CS0246: "The type or namespace name 't' could not be found. Are you missing a using directive or an assembly reference?" on the following code and I can't figure out why.
This doesn't work the way you do it here. System.Type is part of the runtime type information system. It's a special class that describe a certain type. .NET / Mono is a compiled language so it's impossible to compile your code above since the t is not a type, it's a class instance which holds the descriptor of a certain type.
If all those different scripts have a function Run() you should implement an interface in al those types.
Another way would be to use reflection, but it's kinda slow, messy programming style and hard to debug.
Here's an example how to use Unity's SendMessage:
And finally a Reflection approach:
Of course you should check all those things against "null". If the desired script isn't attached to the object, GetComponent will return null so accessing "s" afterwards yields to a null-ref-exception. If the script type doesn't have a method called "Run", GetMethod will also return null.