Новый объект должен быть создан на каждой итерации.Вы ссылаетесь на один и тот же объект каждый раз.
Вы можете сделать так,
for (let i = 0; i < 2; i++) {
this.dataSource.push({
year : new Date().getFullYear() + i,
noSolar : averageBill * increaseRate,
withSolar : (contractAmount * .004) + customerCharge,
saving : (contractAmount * .004 + customerCharge) * 12 - (averageBill * 12),
check : SREC,
total : (contractAmount * .004 + customerCharge) * 12 - (averageBill * 12) + SREC,
});
}
или сделать так,
for (let i = 0; i < 2; i++) {
this.data=new DataSourceObject();
this.data.year = new Date().getFullYear() + i;
this.data.noSolar = averageBill * increaseRate;
this.data.withSolar = (contractAmount * .004) + customerCharge;
this.data.saving = (contractAmount * .004 + customerCharge) * 12 - (averageBill * 12);
this.data.check = SREC;
this.data.total = (contractAmount * .004 + customerCharge) * 12 - (averageBill * 12) + SREC;
this.dataSource.push(this.data);
}