Semenya, 25 - who underwent gender testing after winning gold at the 2009 World Championship - coasted home in one minute 56.64 seconds, the fastest time in the world this year.
She is a clear favourite for gold in the event at Rio 2016, where she also plans to run the 400m.
Britain's Lynsey Sharp finished fifth.
Also representing Britain in Rabat, Dan Bramble jumped 8.00m to finish fourth in the men's long jump, while Robbie Grabarz cleared 2.25m and was fifth in the men's high jump.
Rabah Yousif finished sixth for Britain in the men's 400m, posting a time of 45.90 seconds.