Hola:
Bueno, bgcolor es un atributo y background es un estilo (se aplican a etiquetas)
Hay muchos atributos posibles para maquetar, pero la tendencia es que los aspectos visuales se resuelvan solo con estilos (hay muy pocos atributos que no puedan omitirse reemplazándolo con estilos... creo que cellspacing en tablas es el único... o uno de los pocos)...
background es genérico para fondos y se puede desglosar en
background-color/image/position/attachment/repeat.
En resumen me parece que es preferible usar background... o background-color
Saludos