Considera los siguientes datos a modo de ejemplo:
import pandas as pd
# Datos
df = pd.DataFrame({
"mes": ["Ene", "Feb", "Mar", "Abr", "May", "Jun"],
"ingresos": [12, 15, 13, 18, 21, 19]})
A diferencia de matplotlib y plotly, seaborn no tiene su propia función de relleno de área: dibuja la línea con lineplot y sombrea el área debajo con fill_between de matplotlib sobre los mismos ejes.
import seaborn as sns
import matplotlib.pyplot as plt
ax = sns.lineplot(x = "mes", y = "ingresos", data = df)
ax.fill_between(df["mes"], df["ingresos"], alpha = 0.3)
# plt.show()

Colores
Pasa el mismo color tanto a lineplot como a fill_between para mantener la línea y el relleno consistentes.
import seaborn as sns
import matplotlib.pyplot as plt
ax = sns.lineplot(x = "mes", y = "ingresos", data = df, color = "#C44E52")
ax.fill_between(df["mes"], df["ingresos"], color = "#C44E52", alpha = 0.3)
# plt.show()

Para varios grupos, dibuja la línea y el relleno de cada uno por separado, o deja que lineplot gestione la agrupación con hue y usa el bucle solo para los rellenos.
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
# Datos de ejemplo
df2 = pd.DataFrame({
"mes": ["Ene", "Feb", "Mar", "Abr", "May", "Jun"] * 2,
"ingresos": [12, 15, 13, 18, 21, 19, 8, 9, 11, 10, 14, 15],
"region": ["Norte"] * 6 + ["Sur"] * 6})
ax = sns.lineplot(x = "mes", y = "ingresos", hue = "region", data = df2)
for region, group in df2.groupby("region"):
ax.fill_between(group["mes"], group["ingresos"], alpha = 0.2)
# plt.show()

También te puede interesar