Сложный вопрос.
Все объявления методов BeginInvoke для делегатов выглядят как
[MethodImpl(0, MethodCodeType=MethodCodeType.Runtime)]
public virtual IAsyncResult BeginInvoke(...some params...);
Наиболее важной частью здесь является MethodCodeType.Runtime. Это
Указывает, что реализация метода обеспечивается средой выполнения.
Подробнее о реализации во время выполнения вы можете прочитать в этой довольно старой, но все еще актуальной статье .
Silverlight - это кроссплатформенная платформа. Поэтому он должен реализовать свой собственный независимый от платформы (то есть управляемый) механизм асинхронного выполнения (многопоточность и диспетчеризация). Это история управляемого класса Deployment.Current.Dispatcher и его метода BeginInvoke, который может вызываться из Silverlight.
Кстати, классы Dispatcher и DispatcherOperation совместимы с CLS, что гарантирует их работу в различных реализациях CLI.
Итак, краткий ответ на вопрос
почему Delegate.BeginInvoke не является
поддерживается на Silverlight?
потому что пришло время создавать ДЕЙСТВИТЕЛЬНО кроссплатформенные приложения:)