"Coloured" was a legal racial classification in South Africa but long ago passed into local parlance and is not an offensive term at all when applied to the group that identifies itself as "coloured".
Not all SA coloured people are Malay, or even from the Cape. So Cape Malay or Malay is not appropriate for all SA coloured people. Or those in Namibia.
en.wikipedia.org/wiki/Coloured
en.wikipedia.org/wiki/Coloured_People_in_Namibia
...I would never use the term freely in a country other than South Africa or Namibia though. if i mention this group to others, i preface it with "they call themselves this, it's used in political discourse even, i know it sounds offensive but it's not in their context"
i use black, Asian, etc to describe people. OP i would think your friend was a bit weird to use "coloured" tbh. i would think them either out-of-touch or racist, reserving judgement until more evidence became available.
having said that... in Canada for example, "Asian" people are ONLY people from China, Korea, Vietnam, etc. People from India, Pakistan, Bangladesh etc. are "Indian". Which strikes me as stupid since India is in Asia. If you use Asian for an Indian person, [white] Canadians get quite catsbumface ime and start trying to politely correct you.
Whereas in the UK ime, "Indian-looking" people seem to self-identify as Asian. (Which is good because i feel sort of shitty calling a person "Indian" when i have no idea whether they actually come from India and not from Pakistan etc.)
it is all dreadfully confusing particularly as you travel to different countries, so i just try to be frank as much us i can and be ready to apologise if anyone gets miffed.