It has to do with whether or not you’ve currently got a good connection to Google’s servers for sync services and the like. From page 27 of their Android 2.3 Users Guide:
Network status icons turn green if you have a Google Account added to your phone
and the phone is connected to Google services, for syncing your Gmail, Calendar
events, contacts, for backing up your settings, and so on. If you don’t have a Google
Account or if, for example, you’re connected to a Wi-Fi network that is not connected
to the Internet, the network icons are white.
I’m not really sure why it bounces back and forth between green and white sometimes. I’ve noticed it on my phone but everything works fine (I run CyanogenMod, though, so perhaps it has to do with that). It could also be that green means it’s currently in the act of syncing, but the wording in the document is a little vague, in my opinion.
In the case of Honeycomb or Ice Cream Sandwich, the colors are blue/grey instead of green/white, but they still have the same meaning.
Edit: For the interested, here are links to the user guide in other languages. The above is the English version.
I just had the same problem of the 3G and the bars showing only in white and not green. I just got the phone a week ago and am not too familiar with the Android feature phone yet. However, the latest problem that I had was that my phone was saying that I was low on memory.
I was researching new SD cards, but just realized that I had about 4GB free on the SD card and it was the phone that was full. I moved all the apps that I could onto the SD card and now I have 100MB free on the phone. Now the 3G and the bars are green. I think that the Google Syncing services shut down (hence the white logos) when there is not enough memory on the phone to run them. My email was not syncing either.
Moral of the story: If you do not have green bars, check your phone memory. Delete apps and/or move them to your SD card. It works perfect now.