Probably because Haskell ended up being the language for academics. If you want to do programming language research in an ML-type language use Haskell. If you want to make a product, use OCaml. Not entirely true, but pretty close.
>So bind is flat map in other languages.
In the case of a List, yes, but there are other datastructures that implement Monad. This type of thing happens a fair amount in Haskell. It is not that uncommon to see code like:
instance Monad List where
(>>=) = flatMap
That is to say, the implementation of the interface is just another function that has a more domain specific name.There are other monads with a bind that cannot be understood as flatMap.
For example, the Maybe datatype is Haskell's version of Optional. For example, if a variable is of type `Maybe t`, it either contains a single value of type t, or no value. It is common to use Maybe without using it as a monad. However, Maybe does implement the Monad interface. In this case, bind is defined as follows:
x.bind(f) =
if (x.hasValue()) then { return Just(f(x.value)) }
else { return Nothing() }
where Just and Nothing are two constructors of Maybe. If we view 'no value' as analogous to null, then this bind function is null propogation.