I'm trying to estimate the predicted test scores for students with different disability types, and the data is longitudinal. I have two options (below): option 1 is to run regression year by year and use margins to predict the scores for each year, and option 2 is to run one regression but interacted with year. The goal is to plot the predicted scores over time.

Option 1
Code:
foreach i in 2009 2010 2011 2012 2015 2016 2017 2018 2019 {
reg test_score i.DISAB i.race i.female i.FRPL if year==`i' 
margins i.DISAB
est store m`i'
}


Option 2
Code:
reg test_score (i.DISAB i.race i.female i.FRPL)##(year)
margins i.DISAB#year
marginsplot,  xdim(year)



The end results from the two options are very similar (maybe with tiny differences in 2011 & 2012 for Disab=0).

I'd like to know if the two specifications are equivalent in achieving the goal (i.e., plotting the predicted score over time).

Given they produce very similar results (although not exactly the same), is one more correct than the other? Is there any violation of the assumptions required for OLS here?

Thank you!