I have used the 'Simple Green' product which is a good degreaser. To be truely green though I would say you could use a stronger less 'green' detergent (Dawn- possibly) BUT make sure you DON'T pump the bilge into the Lake or Bay. Instead get an old 5 gallon oil pail and dispose of properly at a facility that will accept. I use an oil extractor to suck up the degreased water/oil mixture.
Those Citrus acid based cleaners are sold under many brands and do a great job with engine grease as well as a myriad of other tough stains. The best value I've found is at your local "Dollar Store" sold under the brand name of 'awesome cleaner' . At 99 cents for a quart of concentrated citrus cleaner, the price is right and it removes almost any stain on a boat. Caution, it will remove paint if not rinsed off immediately.
A bit outside the box. 2 things clean oil/grease. One is detergent. The other is heat. How would steam go cleaning it? Of course you would have to be careful of heat sensitive areas. I've got no idea how this would work( I have seen filters over commercial kitchens cleaned this way and they get really greasy) but as long as water residue does not go overboard it could not be more eoc-safe.