250k is the maximum number of bits that can be sent in 1 second using the specification. Keep in mind that most of that is overhead (50-99%), which is data that keeps track of the actual data you send: 'hello world' for example.
Here's an example:
Let's say Node 1 wants to send 'hello' to node 4. Let's assume that it travels over node 2 and node 3 to get there:
node 1 -> node 2-> node 3-> node 4
Node 1 will send the 'hello' to node 2. Node 2, if it receives it will have to send an acknowledgement. If node2 doesn't get the message node 1 will resend the message up to 3 times.
The above process must occur for every 'hop': node 1 to node 2, node 2 to node 3, etc. Also, node 4 will send a final ack message. So you can see this can easily be up to 10 packets or more. That's about 80bytes a packet. So you've already consumed 800 bytes (6400 bits) in this example.
this is assuming that node 1 has the routing information to get to node 4. It may not. In that case it would have to do a network discovery. It would send a broadcast out and all nodes would have to answer. that's several more packets that would all come back. That's additional overhead.
Your also assuming no other nodes are sending or receiving. Zigbee has a lot of additional overhead. This is to support those neat mesh network features and sleep features.
If you really want to understand why data rates are so low read the specification in detail and get a zigbee network sniffer. You will then see how it's easy for 1 transmission to generate 100 or even thousands of packets.