Neither [h] nor [k] is "accurate" as a replacement for [x]: but there are some linguistic issues related to how [x] in a source language word appears in English, when the word is borrowed. The velar fricative is not a robust phoneme of English, but it does robustly exist for some speakers who pronounce the name Bach as [bax] (etc.). Phonetically it also exists in most performances of /sks/ as in "masks, risks..."; it can even affect intervocalic /k/ as in "baker" where /k/ can lenite to [x]. Therefore one option is simply, pronounce [x] as [x].
A word with final [x] generally cannot be borrowed with [h], because English syllables do not end with [h], which only appears foot-initially, therefore "Bach" is not pronounced [bah]. (The word "feh" might be an anomaly, in case anyone actually says [fɛh] rather than [fɛχ] or [fɛ]). You have to look to word-initial position to "neutrally" figure out a preference for [h] vs. [k] for original [x].
The source language, especially the circumstances of language contact, may matter. Words coming from Chinese are pronounced with [h] (Shanghai, Hunan, zillions of personal names like "Hu Yaobang"), despite being pronounced with a velar fricative in Mandarin: the reason is that the phoneme is conventionally transcribed with h, and English speakers picking up such words do not acquire them from Chinese speakers, they acquire them from spelling. Most words from other languages that are pronounced by English speakers are generally not based on live other-language pronunciations.
Spanish words are the most robust source of [x] input to English, and I can't think of any word from Spanish which normally has [k] for original [x]. To the extent that there might be variation in the pronunciation of x in Mexico, that is probably influenced by the mildly wide-spread knowledge that x is not pronounced [ks] in Spanish, and there is some x ~ j spelling variation that people know of, so the word is "special" and may be treated as a special case, for some (few) people in English.
The status of Arabic words is unclear. There is a voiceless back fricative خ which is clasically uvular [χ] but in some Levantine dialects is pronounced [x] (that is, I know of that from some Levantine speakers: it may be more widespread). خ is usually rendered as [k], as in "caliph, Khalil, Khalid", but again these are not words freshly borrowed into English from the speech of Arabic speakers ("caliph" has been westernized since the 15th century). It would be interesting to see how English speakers attempt to render unknown Arabic words spoken with [x] (not [χ]). Likewise, one can suspect orthographic influence in the rendition of Greek χ as [k], since it is typically spelled ch.