Вы были довольно близко. Просто измените две последние строки вашего кода C # на следующие:
dynamic p = scope.Engine.Execute("Person.new(name)", scope);
p.sayHi();
Кроме того, хотя я не уверен, чего вы хотите достичь, вы можете использовать свой класс из C # более простым способом:
var engine = Ruby.CreateEngine();
var scope = engine.ExecuteFile(@"C:\codebase\Test\Test2\Test2\person2.rb");
dynamic globalConstants = engine.Runtime.Globals;
dynamic person = globalConstants.Person.@new("shay");
person.sayHi();