I think it is just due to C# being a play on C++ (the # could be seen as ++ just rearranged to overlap). No doubt the positive connotations of "sharp" also played a role. Cb or C-flat neither looks or sound cool! That said, MS did have en experimental language called C-flat, but it was not intended for general purpose use (if I remember correctly), so the name might have been chosen as a joke.
F# is in turn named after C#, as it is the functional equivalent to C# in the framework.
F# is in turn named after C#, as it is the functional equivalent to C# in the framework.