When placing curly braces in an interpolated string in a Ruby-evaluated string (line starting with a single =), the matching for the syntax highlighting does not occur correctly, and the first closing brace is matched to the end of the interpolation, causing the rest of the interpolated code to be highlighted as if it were a string.
When it is regular HAML "text" line, i.e. a line starting with no = or starting with a ==, the highlighting occurs correctly.
This is pretty tricky to fix. The Haml highlighting turns off the "expensive" handling of vim-ruby because that expensive requires tracking things across multiple lines (and Ruby in Haml is one line by necessity), yet that same expensive mode is what prevents this from happening in Ruby files.