Should I include a view for each message?
I would strongly recommend you to go for the include solution. You will probably take a small performance hit, but that should not outweigh the benefits of having code that is much easier to maintain. Whenever you have to duplicate code, you are doing something wrong.

Also, if you find performance really important, may I suggest not sending the rendered (sub)view trough ajax. It would be much better to send just the data as JSON over the wire. It will be much smaller, and the server does not need to take time to render anything. You can then parse the JSON in your js to render the view there. There are templating languages for js that you could use, there is even a js version of twig (I haven't used it yet, so I don't know if it is any good, but I like the idea...)