La risposta è semplice.
Chi conosce c e c++ viene dal linguaggio di programmazione più completo al modo, orientato agli oggetti, con classi, sovraccarichi degli operatori e così via e molto sicuramente conosce anche il concetto di programmazione ad oggetti. Perciò nel passare a php la cosa per un programmatore esperto diventa una cavolata visto che la pagina è interpreta dall'alto in basso.
Chi invece faceva asp conosceva vbscript (linguaggio molto poco potente e facile da usare) e della quale i concetti sopra indicati di c++ non ne conosce niente e perciò nel passare a .net potrebbe passare grosse difficoltà, anche se non usasse c#, ma vb.net. Il concetto di programmare pagine web è nuovo ed è simile se non identico alla programmazione delle applicazioni windows del vecchio vb6. Credo chi abbia già programmato per applicazioni win in vb6 non trova molte difficoltà e credo che se c# è così diffuso è perché la maggior parte degli utenti conosca c++ o vb6 e perciò non trovi molte difficoltà.

Certi discorsi mi sembrano un po' troppo pro php open source e linux

Ciao ciao