Possible cost cutting options I thought of:
Since it's only playing one song, you actually wouldn't need the MP3 shield. There are many tutorials online for wav playback on Arduino without a shield and the Arduino can easily read a SD card using a logic level converter ($1, max). The sound quality will be low but it's cheap! Ultrasonic sensors are cheap on eBay, you could also go with a passive IR sensor.
Of course you could build your own Arduino compatible board for about $10 but you'd need a way to program it (ICSP isn't exactly cheap either).
What he doesn't understand is that the economics are different when you are making one unit versus 100,000 units. (But if you are thinking 5 or 10 units, then it starts to become financially advantageous to start avoiding the hobbyist stuff and make your own boards.)