float *vertices doesn't convert to array of single. That is 1 type of cast you can't do with dynamic array. The C++ code uses pointers, so more precise translation would be:
Code:
var
   vertices: PSingleArray;
   vectors: PVec3Array;
begin
   vectors:=PVec3Array(vertices);
end;