O que Danielg disse é bom. Eu adicionaria:
Se você assiste aos vídeos sobre System.Addins, eles estão claramente falando sobre projetos muito grandes. Ele fala sobre uma equipe gerenciando o aplicativo host, outra equipe gerenciando cada AddIn e uma terceira equipe gerenciando o contrato e o pipeline. Com base nisso, acho que o System.Addins é claramente para aplicativos maiores. Estou pensando em aplicativos como sistemas ERP como o SAP (talvez não tão grande, mas você entendeu a ideia). Se você assistiu a esses vídeos, pode dizer que a quantidade de trabalho para usar o System.Addins é muito grande. Funcionaria bem se você tivesse muitas empresas programando suplementos de terceiros para o seu sistema e não pudesse quebrar nenhum desses contratos de suplemento sob pena de morte.
Por outro lado, o MEF parece compartilhar mais semelhanças com o esquema de complemento do SharpDevelop, a arquitetura de plug-in do Eclipse ou o Mono.Addins. É muito mais fácil entender do que System.Addins e acredito que seja muito mais flexível. O que você perde é que você não obtém o isolamento do AppDomain ou os contratos de versão fortes prontos para uso com o MEF. Os pontos fortes do MEF são que você pode estruturar todo o aplicativo como uma composição de peças, para poder enviar seu produto em configurações diferentes para clientes diferentes e, se o cliente comprar um novo recurso, basta soltar a peça desse recurso no diretório de instalação e o aplicativo vê e executa. Também facilita o teste. Você pode instanciar o objeto que deseja testar e alimentá-lo com objetos simulados para todas as suas dependências,
O ponto mais importante que eu gostaria de mencionar é que, embora o System.Addins já esteja na estrutura, não vejo muitas evidências de pessoas que o usam, mas o MEF está sentado no CodePlex, supostamente, para ser incluído no O .NET 4 e as pessoas já estão começando a criar muitos aplicativos (inclusive eu). Eu acho que isso diz algo sobre os dois quadros.