Компилятор пожалуется на
myObj.AsString; // only assignment, call, increment, decrement, and new object expressions can be used as a statement
Так что избавься от этого. И, конечно, избавиться от строки кода, который, как вы говорите, не компилируется. Однако остальная часть вашего кода должна работать, как только эти биты будут исправлены. Пример (плюс добавление еще одного «метода»):
dynamic myObj = new ExpandoObject();
myObj.First = "Stack";
myObj.Last = "Overflow";
Action<int> PrintInt = input => Console.WriteLine(input.ToString());
myObj.PrintInt = PrintInt;
myObj.PrintInt(1);
myObj.AsString = new Func<string>(() => myObj.First + " " + myObj.Last);
string s = myObj.AsString();
Console.WriteLine(s);