Is your "burst" too small?
Code:
burst Also known as buffer or maxburst. Size of the bucket, in bytes. This is the maximum amount of bytes that tokens
can be available for instantaneously. In general, larger shaping rates require a larger buffer. For 10mbit/s on
Intel, you need at least 10kbyte buffer if you want to reach your configured rate!
If your buffer is too small, packets may be dropped because more tokens arrive per timer tick than fit in your
bucket. The minimum buffer size can be calculated by dividing the rate by HZ.
Also, as seen in the last sentence above, the man page for tbf seems to imply a heavy dependence on the kernel's HZ. I think the linode kernels are tickless, at least mine is. Not sure what effect that has, but it may be affecting your rates.