The problem is that the bulbs and the controller each have their own clock. You need to get Linux (a multi-tasking OS on a low-end chip) to write to the GPIO pins at the proper millisecond intervals. (Have a look at the underlying library; there are some values in there that are "well, these seem to work... adjust the timing if your chip's faster/slower.")
It works on the Arduino because it doesn't have a multi-tasking OS running underneath it to preempt the task. If you could get a realtime OS running on the Pi though, you might have better luck.
Good luck with the rest of this project. I did something similar at one point; I was using a RS-485 link between the Arduino and the controller. (Check SparkFun; they have some relatively cheap breakout boards for RS-485. I used one basic RJ-45 to bare pins for the Arduino end, and a RS-485 to USB adapter for the other.