Two completely different approaches.
Of the two the PS3s solution is far harder as they are attempting to emulate in full the entire PS2 in software, whereas MS release a "fix" for a top title so the new hardware can interpret the old software.
When Sony get the emulator up to speed, just about everything will work without further input from Sony, but MS will have to continue releasing "fixes" every time they want to add another game to the BC list.
In the long run it would probably be easier to have gone down the full emulation route, but in the short term the "fixes" MS release are easier, but as I said, they will have to keep doing it on a game by game basis until they cannot be bothered with BC anymore.
MS's approach likely wouldn't have worked for Sony. MS had a full OS and kept nearly all coding at high level APIs, so it should be much easier for them to interpret the calls.
That aside, I don't see any real advantage to switching to software emulation on the current PS3, unless they were to gain the ability to do 3d rendering at higher resolutions in software, but that seems unlikely without the use of a high-level API like DirectX/OpenGL that could abstract away the scaling.
PC emulators have no problem making PSX (or ps2, or even gamecube) games run at a higher resolution.