Both Even-Shoshan and Klein say there are two possible answers. We'll look at each, but first let's take a look at the two meanings.
The first dictionary entry for keren, is found throughout Biblical Hebrew and has a number of meanings:
- horn (as in the horn of an animal)
- a shofar (made from a horn)
- strength, power (figuratively related to the strength of the horn)
- ray, beam (a ray protrudes from its source like a horn. A misreading of the Biblical verse describing the rays radiating from Moshe caused many Christians to believe that Moshe, and in fact all Jews, had horns).
- corner, point (again, related to the idea of "protrusion")
- container (a horn was used to hold things, like oil, food, etc)
While as I said, both Klein and Even-Shoshan say that this later meaning of keren might have developed from the earlier one, neither explain how. Horowitz, however, does write (page 63):
Since keren, the horn, was used to store oil it gradually came to mean a receptacle in general, or a place where things are stored. From this usage developed the meaning "a fund".
He doesn't quote any verses, but the usage in Shmuel I 16:13 - keren hashemen קרן השמן - "the keren of oil" (used for anointing kings) is one example of this usage. So keren went from a horn used to store oil and became a fund used to "store" money.
An alternate explanation says that the two meanings of keren have different roots. For the meaning "fund", Klein provides this etymology, unrelated to "horn":
borrowed from Akkadian qerenu (=heap, pile, stack; threshing floor), qaranu (=he heaped, piled)
This would mean that this sense of keren is cognate to the Hebrew goren גורן - "threshing floor", as both have the same Akkadian root.
Keren as horn, however, has a very ancient etymology, and many sources, such as this one, find cognates in Indo-European languages (and I briefly touched on it in this post).