So, they speak in English (or more we hear/read the translation) like we're reading subtitles, yes?
In that case... if this was my project (which I can only answer in that regard), I would do the following:
1. Any person, place, thing, action that has a universally accepted Arabic word (like your kaftan example), I would use that word.
2. Any religious, societal, political, etc. term that either is universally accepted (like mosque), or does not have a single word translation (like adhan/call to prayer), I would use that Arabic word.
3. I would not use a broken English (as in missing words, showing confusion for the right English word, and so on) or pidgin English.
4. I WOULD use dialogue that is as fluid as if they were primary English speakers, inserting No.1 & 2 where appropriate.
5. I would be cautious of customs, things that should be said (typical greetings and responses), things that should not be said (as I imagine in all cultures some things are taboo to speak of), and do my best to say things in the same manner an Arabic speaking Moroccan would. That does NOT mean, if a direct translation is "said Bob no" you use that... in such a case you would say, "Bob said no." But, there may be cultural specific orders of proper or polite conversation. IOW, it might be typical to always address the person you're speaking with first, "Tom, Bob said no."
6. I would use Arabic/Moroccan names for people.
7. I would make sure to use certain political, religious and hierarchical terms correctly.
8. I would not worry about the reader knowing the few specific Arabic words you may use. They'll either get it from the action, or, they can look it up.
But... that's just what "I" would do.
K2